从源码安装golang

通常情况下,安装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.4-bootstrap-20170531.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.4-bootstrap-20170531 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就是这么简单!

从源码(编译)安装golang的更多相关文章

  1. zstack源码编译安装(1.7.x版本)

    图片没粘贴过来,请看本人gitbook吧https://www.gitbook.com/book/jingtyu/how-to-learn-zstack-code 运行环境 zstack的安装方式有很 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 总结源码编译安装mysql

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

随机推荐

  1. CATransition

    CATransition *transition = [CATransition animation];    transition.duration = 1.0f;         /* 间隔时间* ...

  2. Springboot Mybatis Redis 实现二级缓存

    前言 什么是mybatis二级缓存? 二级缓存是多个sqlsession共享的,其作用域是mapper的同一个namespace. 即,在不同的sqlsession中,相同的namespace下,相同 ...

  3. HDU 1754 线段树 单点跟新 HDU 1166 敌兵布阵 线段树 区间求和

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. pipelineDB初体验

    官网:http://www.pipelinedb.com/ pipelineDB是基于postgres的stream数据库.完全兼容pg的东西. 由于产品需要解决性能这块瓶颈,老大让试试这款基于流计算 ...

  5. 05.haproxy+mysql负载均衡 整合 redis集群+ssm

    本篇重点讲解haproxy+mysql负载均衡,搭建完成后与之前搭建的redis+ssm进行整合 (注:这里用到了两台mysql数据库,分别安装两台虚拟机上,已经成功实现主主复制,如果有需要,请查看我 ...

  6. Windows2000源代码 200+MB

    全球最大的软件制造商微软2月12日警告公众称其一部分珍贵的Windows NT和Windows 2000操作系统源代码被泄漏到了一些在线文件共享网络中. 微软称被泄漏的代码只是整个程序的一小部分,但这 ...

  7. Oracle的导入导出 DMP 文件

    普通 导入: 将数据库完全导入,用户名userName 密码PassWord导入文件位置 E:\work\dmp\xxxxx.dmp (注意:导入的用户必须要跟导出时候的用户一致) imp userN ...

  8. 导入mysql数据的时候提示Field * doesn't have a default value解决方法

    项目使用django+mysql 在linux中使用的是mysql5.7,导入数据提示:Field * doesn't have a default value 想要解决问题就需要知道在mysql5. ...

  9. 我的Android进阶之旅------&gt; Android在TextView中显示图片方法

    面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包括图像的文本信息).并简要说明实现方法. 答案:Android SDK支持例如以下显示富文本信息的方式. 1.使用T ...

  10. poj 3168 Barn Expansion 几何yy

    题链:http://poj.org/problem? id=3168 Barn Expansion Time Limit: 1000MS   Memory Limit: 65536K Total Su ...