参考文档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源码编译安装的更多相关文章

  1. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

  2. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  3. 烂泥:mysql5.5数据库cmake源码编译安装

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...

  4. Centos7.X 源码编译安装subversion svn1.8.x

    说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...

  5. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  6. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

  7. Linux环境PostgreSQL源码编译安装

    Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...

  8. 总结源码编译安装mysql

    最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...

  9. Linux下源码编译安装rpy2

    R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...

  10. 源码编译安装 MySQL 5.5.x 实践(转)

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

随机推荐

  1. [20190322]测试相同语句遇到导致cursor pin S的疑问.txt

    [20190322]测试相同语句遇到导致cursor pin S的疑问.txt--//昨天测试遇到的情况,链接:http://blog.itpub.net/267265/viewspace-26388 ...

  2. EOS与以太坊有哪些区别?

    以太坊是一个专门为开发和运行去中心化应用(DAPP)搭建的智能合约平台:EOS与以太坊类似,同样是基于智能合约和区块链而搭建.但是,从技术和设计理念等方面来看,这两者之间实际上存在明显的区别. 那么E ...

  3. 关于激活Windows10专业版2018长期服务版

    之前重装了一次系统,偷懒用了小白一键重装,装好之后显示的是Windows10专业版2018长期服务版,当时也没想太多就放着用了. 然后 ,这几天一直提示  “你的windows许可证即将过期” ,就按 ...

  4. 基于centOS7:新手篇→tomcat安装配置

    1.新环境,还没有安装lrzsz和unzip,先安装 yum -y install lrzsz yum -y install unzip 2.进入tomcat官网下载安装包,使用rz上传到服务器opt ...

  5. February 28th, 2018 Week 9th Wednesday

    Knowledge makes humble, ignorance makes proud. 博学使人谦逊,无知使人骄傲. Humility is not equal with being passi ...

  6. n阶方阵的最值问题和对角线的和问题

    如题! package 矩阵2; public class JuZheng { public static void main(String args[]) { int array[][] = { { ...

  7. springboot事物回滚

    要添加事物 必须在方法上添加 @Transactional 注解 如果需要事物回滚有两个条件 1.方法中有异常或者主动抛异常 2.主动去回滚 TransactionAspectSupport.curr ...

  8. 7.01-beautiful_soup3

    # pip install beautifulsoup4 from bs4 import BeautifulSoup html_doc = """ <html> ...

  9. UVA11584-Partitioning by Palindromes(动态规划基础)

    Problem UVA11584-Partitioning by Palindromes Accept: 1326  Submit: 7151Time Limit: 3000 mSec Problem ...

  10. AppCan10个超实用的APP必备插件,让你少敲80%代码

    一个APP的需求来自于哪儿?产品.老板.客户….. 做程序员不容易,需求一句话,就是几千几万行代码!所幸,在AppCan平台开发APP,开发者只需完成应用的前端部分,至于各项复杂的功能,就交给AppC ...