Go源码编译安装
参考文档1:https://www.cnblogs.com/majianguo/p/7258975.html
参考文档2:http://www.loongson.cn/news/company/456.html
通常情况下,安装go只需要在官网(https://golang.org/dl/)下载适合系统的二进制发布包,按照安装说明进行安装即可。
对于Linux, Mac OS X和FreeBSD系统下的安装,三步即可完成:
1.下载tarballs文件go$VERSION.$OS-$ARCH.tar.gz,例如1.8.3
wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz)
2.执行tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz提取到 /usr/local
3.设置环境变量,将/usr/local/go/bin 加入到PATH环境变量。可以通过将
export PATH=$PATH:/usr/local/go/bin 添加到/etc/profile或$HOME/.profile文件的最后一行。
对于windows系统下的安装,可以下载msi安装包,安装程序自动将go发布拷贝到c:\go目录下,并且将c:\go\bin目录加入到PATH环境变量。
如果安装位置不是/usr/local/go或者c:\go目录,则需要设置GOROOT环境变量,将GOROOT/bin加入到PATH环境变量。
Go的一大特征是简单,通过下载二进制发布包安装go环境就充分体现了简单性。
某些时候,可能要使用特殊版本的go,从源码安装,这同样很简单。从源码安装,首先要进行编译。Go 1.5实现了bootstrapping,所以编译1.5以后的版本和编译1.5以前的版本会略有不同。bootstrapping是编译器领域的一个术语,中文翻译为自举或自展,通俗地讲“用要编译的目标语言编写其编译器(汇编器)”。Go1.5开始编译器和运行时完全用Go语言编写(还有少量汇编);go1.4是最后一个用C编写工具链的发布。
编译go1.4,ubuntu 16.04.2系统:
- cd ~
- wget https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz
- tar zxvf go1.-bootstrap-.tar.gz
- cd go/src/
- ./all.bash
编译完成后,可以看到如下输出:
- ALL TESTS PASSED
- ---
- Installed Go for linux/amd64 in /home/dell/go
- Installed commands in /home/dell/go/bin
- *** You need to add /home/dell/go/bin to your PATH.
成功编译后,将~/go/bin加入到PATH环境变量
- sudo gedit /etc/profile
在最后一行加入 export PATH=/home/dell/go/bin:$PATH 保存
- source /etc/profile
执行go version,检查安装
- dell@dell-VirtualBox:~/go/src$ go version
- go version go1.-bootstrap- linux/amd64
编译Go1.5及以上版本:
Go 1.5开始编译器和运行时用go自身编写,要编译它们,首先要安装go编译器。all.bash 编译脚本会在$GOROOT_BOOTSTRAP环境变量中查找一个已经存在的go tool chain,实际上就是要有一个编译好的bin/go程序,$GOROOT_BOOTSTRAP/bin/go应该是go二进制命令。有很多选择,可以在官网(https://golang.org/dl/)下载go发布包;也可以用go1.4源码编译,也就是按照上面的步骤编译go1.4,然后再去编译更高版本的go。
用官方下载的go1.7编译go 1.8,ubuntu 16.04.2 举例:
- cd ~
- wget https://storage.googleapis.com/golang/go1.7.6.linux-amd64.tar.gz
- wget https://github.com/golang/go/archive/go1.8.3.tar.gz
- tar zxvf go1.7.6.linux-amd64.tar.gz
- tar zxvf go1.8.3.tar.gz
- export GOROOT_BOOTSTRAP=/home/dell/go
- cd go-go1.8.3/src
- ./all.bash
编译成功后,有如下输出:
- ##### API check
- Go version is "go1.8.3", ignoring -next /home/dell/go-go1.8.3/api/next.txt
- ALL TESTS PASSED
- ---
- Installed Go for linux/amd64 in /home/dell/go-go1.8.3
- Installed commands in /home/dell/go-go1.8.3/bin
- *** You need to add /home/dell/go-go1.8.3/bin to your PATH.
sudo gedit /etc/profile 将export PATH=/home/dell/go-go1.8.3/bin:$PATH 加入到文件最后一行
执行go version 检查安装
- dell@dell-VirtualBox:~/go-go1.8.3/src$ go version
- go version go1.8.3 linux/amd64
不管从二进制安装还是从源码安装,go就是这么简单!
编译mips64el架构下go
从Go 1.5开始,Go语言的编译器、汇编器和链接器等底层工具链全部使用Go语言来实现。故自Go 1.5开始,从源代码安装Go语言环境时需要使用现成的Go语言编译器来编译Go的源代码,上述过程称为Go语言的自举编译。因此,从源代码安装Go 1.6时要求系统中存在Go 1.4及其以上的Go语言环境。
GOLANG源码编译,由于1.5版本之后是自举实现的,所有编译要先从1.4版本开始.
Go1.4的下载链接: https://pan.baidu.com/s/1uti8Qep9WGt_jjp0LtR62Q 提取码: 2f8k
1、下载后可以解压到任意目录,例如可以通过如下命令将其解压到/opt文件夹下并重命名为go1.4.2
- $ tar xvzf go1.4.2.linux-amd64.tar.gz -C /opt
- $ mv /opt/go /opt/go1.4.2
2、配置交叉编译的自举编译工具链(用1.4编译工具链,编译1.9甚至更高版本的Go,因为从Go 1.5开始,Go语言的编译器、汇编器和链接器等底层工具链全部使用Go语言来实现。)
- $ export GOROOT_BOOTSTRAP=/opt/go1.4.2
3、下载go1.9的源码,地址:
链接: https://pan.baidu.com/s/10gviq7NeZAGty1KIbprqyA 提取码: fwjd
4、解压到/usr/local下,并重命名go1.9.2
- tar zxfv go1.9.2.src.tar.gz -C /usr/local/
cd /usr/local
mv go go1.9.2
5、进入go1.9.2的src目录下
- cd /usr/local/go1.9.2/src/
6、编译go1.92(X86).
编译(X86),命令:
- ./make.bash
添加到GOROOT变量,并添加到path下,修改/etc/profile,文件最后,添加:
- export GOROOT=/usr/local/go1.9.2
- export PATH=$GOROOT/bin:$PATH
执行命令:
- source /etc/profile
使修改配置生效
- 执行命令go version检验是否按照成功
- [dyh@ump-pc1 src]$ go version
- go version go1.9.2 linux/amd64
6、编译go1.92(mips64el).
在x86机器上,编译mips64el的go,在src目录下,执行命令
- GOOS=linux GOARCH=mips64le ./bootstrap.bash
- [root@ump-pc1 src]# GOOS=linux GOARCH=mips64le ./bootstrap.bash
- #### Copying to ../../go-linux-mips64le-bootstrap
- #### Cleaning ../../go-linux-mips64le-bootstrap
- #### Building ../../go-linux-mips64le-bootstrap
- ##### Building Go bootstrap tool.
- cmd/dist
- ##### Building Go toolchain using /opt/go1.4.2.
- bootstrap/cmd/internal/dwarf
- bootstrap/cmd/internal/objabi
- bootstrap/cmd/internal/src
- .
- .
- .
- cmd/compile/internal/amd64
- cmd/compile/internal/arm
- cmd/compile/internal/arm64
- cmd/compile/internal/mips
- cmd/compile/internal/mips64
- cmd/compile/internal/ppc64
- cmd/compile/internal/s390x
- cmd/compile/internal/x86
- cmd/vendor/github.com/google/pprof/internal/report
- cmd/compile
- cmd/vendor/github.com/google/pprof/internal/symbolz
- cmd/vendor/github.com/google/pprof/internal/symbolizer
- cmd/vendor/github.com/google/pprof/third_party/svg
- cmd/vendor/github.com/google/pprof/internal/driver
- cmd/vendor/github.com/google/pprof/driver
- cmd/pprof
- cmd/trace
- cmd/vendor/github.com/google/pprof/internal/proftest
- cmd/vet/internal/cfg
- cmd/vet/internal/whitelist
- cmd/vet
- ----
- Bootstrap toolchain for linux/mips64le installed in /home/dyh/Go/1.9./go-linux-mips64le-bootstrap.
- Building tbz.
- -rw-r--r--. root root 9月 : /home/dyh/Go/1.9./go-linux-mips64le-bootstrap.tbz
在src上上一级目录中 ,生成go-linux-mips64le-bootstrap.tbz,及可运行在mips64el架构上的二进制文件
- [root@ump-pc1 src]# cd ../..
- [root@ump-pc1 1.9.]# ls
- go go1.9.2.src.tar.gz go-linux-mips64le-bootstrap go-linux-mips64le-bootstrap.tbz
把go-linux-mips64le-bootstrap.tbz拷贝到mips64el机器上,解压到/usr/local/go1.9.2路径下
- export GOROOT=/usr/local/go-linux-mips64le-bootstrap
- export PATH=$GOROOT/bin:$PATH
校验安装准确性
- [root@node110 go-linux-mips64le-bootstrap]# source /etc/profile
- [root@node110 go-linux-mips64le-bootstrap]# go version
- go version go1.9.2 linux/mips64le
Go源码编译安装的更多相关文章
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- 烂泥:mysql5.5数据库cmake源码编译安装
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...
- Centos7.X 源码编译安装subversion svn1.8.x
说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...
- centos6.5环境源码编译安装mysql5.6.34
centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...
- centos 6.5源码编译安装subversion 1.8.10
一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...
- Linux环境PostgreSQL源码编译安装
Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...
- 总结源码编译安装mysql
最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...
- Linux下源码编译安装rpy2
R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...
- 源码编译安装 MySQL 5.5.x 实践(转)
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
随机推荐
- Debian, Ubuntu linux安装openjdk
sudo apt-get install openjdk-8-jre 这只是单单安装了jre而已,不要安装这个 安装下面这个就行了 sudo apt-get install openjdk-8-jdk ...
- Android 弹出输入框
final EditText inputServer = new EditText(SettingActivity.this); AlertDialog.Builder builder = new A ...
- UITableView的分割线长短的控制
UITableView的默认的cell的分割线左边没有顶满,而右边却顶满了.这样显示很难看.我需要让其左右两边都是未顶满状态,距离是20像素 // code1 if ([self.tableView ...
- echo 1+2+"3+4+5“输出的结果是6
如上,为什么echo 1+2+"3+4+5"输出的结果是6呢?刚开始我也不是很明白,以为有问题,但在电脑上运行程序的时候,结果出现6 了.这让我更加疑惑不解.现将问题解释一番. 在 ...
- JavaScript -- 时光流逝(七):js中的全局函数
JavaScript -- 知识点回顾篇(七):js中的全局函数 全局函数可用于所有内建的 JavaScript 对象. (1) encodeURI():把字符串编码为 URI. <script ...
- C语言 实现逆置功能
C语言 实现逆置功能 //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 字符串的逆置 方法1:利用数组 #include<stdio.h> ...
- mysql 数据可视化操作---Navicat安装及简单使用
,一.安装 下载地址:https://pan.baidu.com/s/1bpo5mqj 安装方法:https://www.cnblogs.com/clschao/articles/10022040.h ...
- ES5-ES6-ES7_iterator和for of
iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set.这样就有了四种数据集合,用户还可以组合 ...
- 【SDOI2017】天才黑客
[SDOI2017]天才黑客 这题太神了. 先模Claris 大神的题解. 首先我们要将边转换为点.如果暴力连边就会有\(m^2\)的边,于是我们考虑优化建图. 难点在于快速得到两个边的串的\(lcp ...
- Jenkins+Ansible+Gitlab自动化部署三剑客-Ansible本地搭建
可以通过git bash连接linux 关闭防火墙,禁用防火墙开机启动,并更爱selinux文件,重启 重新登录并检查禁用 getenforce 安装git yum -y install git ns ...