文档章节

Ubuntu15.10编译安装Golang1.5

douyur
 douyur
发布于 2017/02/26 20:33
字数 818
阅读 10
收藏 0

安装思路

  • 编译安装go1.4
  • 将go目录名称改为go1.4
  • 修改.bashrc中的环境变量
  • 编译安装go1.5

注:为了构建 Go 1.x (x ≥ 5),需要先安装 Go 1.4 到 $GOROOT_BOOTSTRAP. 默认的 $GOROOT_BOOTSTRAP$HOME/go1.4. 使用 Go 1.4 作为启动的基础版本来编译工具链。

安装Go语言相关工具

sudo apt-get install bison ed gawk gcc libc6-dev make gccgo-5

解压Go语言源码包

$ tar -zxvf go1.4.2.linux-amd64.tar.gz

注:源码包解压后根目录的名字是 go,后面设置环境变量会用到。

配置Go1.4语言环境变量

环境变量的配置不论是下一步中编译Go语言源码,还是在之后的开发过程中都至关重要

$ vim ~/.bashrc
export GOROOT=$HOME/go
export GOROOT_BOOTSTRAP=$HOME/go
export GOARCH=amd64
export GOOS=linux
export GOBIN=$GOROOT/bin/
export GOTOOLS=$GOROOT/pkg/tool/
export PATH=$GOBIN:$GOTOOLS:$PATH
export GOPATH=$HOME/goPro

$ source ~/.bashrc

注:

  • GOROOT是存放源码包的位置。比如,我这里是放在/home/plusgo/目录下;
  • GOROOT_BOOTSTRAP在1.5编译时使用 Go 1.4 的Go compilers进行构建,则需指定go1.4的路径;
  • GOARCH 与 GOOS 与下载的发行版有关,例如:我下载的是64位的Ubuntu,因此 GOARCH 为 amd64;如果是32位的Ubuntu,则填386;而GOOS 为 linux;
  • GOBIN为GOROOT路径下bin文件夹路径;
  • GOTOOLS路径在编译时会用到;
  • PATH路径很关键,指定GOBIN和GOTOOLS路径;
  • GOPATH为Go的工作目录,可以随时修改;这里,我选择将GOPATH指定到/home/plusgo/goPro路径下;则在$HOME目录下新建一个goPro目录($ mkdir goPro)作为Go的工作目录;

编译Go1.4源码

$ cd $GOROOT/src
$ ./all.bash

稍等一会,等待编译完成后,出现下面的内容,则为编译通过:

ALL TESTS PASSED
---
Installed Go for linux/amd64 in /home/plusgo/go
Installed commands in /home/plusgo/go/bin/

修改编译好的go目录

将编译好的go目录改为go1.4目录

$ mv go go1.4

修改.bashrc环境变量

$ vim ~/.bashrc
export GOROOT=$HOME/go
export GOROOT_BOOTSTRAP=$HOME/go1.4
export GOARCH=amd64
export GOOS=linux
export GOBIN=$GOROOT/bin/
export GOTOOLS=$GOROOT/pkg/tool/
export PATH=$GOBIN:$GOTOOLS:$PATH
export GOPATH=$HOME/goPro
 
$ source ~/.bashrc

注:这里将GOROOT_BOOTSTRAP路径指定为已编译好的go1.4目录;

编译Go1.5源码

将下载好的go1.5.1.linux-amd64.tar.gz安装包放到$HOME目录下,并解压,默认为go目录; 进入源码文件夹进行编译:

$ cd $GOROOT/src
$ ./all.bash

稍等一会,等待编译完成后,出现下面的内容,则为编译通过:

ALL TESTS PASSED
---
Installed Go for linux/amd64 in /home/plusgo/go
Installed commands in /home/plusgo/go/bin/

接着输入go目录,如果看到如下信息,则即可使用Go语言了:

$ go
Go is a tool for managing Go source code.
Usage:
    go command [arguments]
The commands are:
    build       compile packages and dependencies
    clean       remove object files
    doc         show documentation for package or symbol
    env         print Go environment information
    fix         run go tool fix on packages
    fmt         run gofmt on package sources
    generate    generate Go files by processing source
    get         download and install packages and dependencies
    install     compile and install packages and dependencies
    list        list packages
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         run go tool vet on packages
Use "go help [command]" for more information about a command.
Additional help topics:
    c           calling between Go and C
    buildmode   description of build modes
    filetype    file types
    gopath      GOPATH environment variable
    environment environment variables
    importpath  import path syntax
    packages    description of package lists
    testflag    description of testing flags
    testfunc    description of testing functions
Use "go help [topic]" for more information about that topic.

© 著作权归作者所有

共有 人打赏支持
douyur
粉丝 5
博文 62
码字总数 26478
作品 0
杭州
程序员
golang1.5源码安装说明

golang 1.5的安装说明 由于golang1.5使用了golang来编译自己,所以需要先安装golang1.4,然后使用1.4的go来编译go1.5的源码 源码包官方的下载地址 https://go.googlesource.com/go https://g...

leicc
2015/10/17
422
0
GIScript2016的重要变化

GIScript是一个开源的地理信息处理脚本系统。 GIScript 2016的目录结构进行了调整,因此2016版需要重新编译。 GIScript 2016目前可以支持Windows和Linux,考虑到技术发展的趋势和数据处理的场...

openthings
2015/12/07
147
0
安装faac编译时报错没法解决啊,网上的方案都不行!!来个大神呗!!

在ubuntu15.10虚拟机安装ffmpeg,在安装faac时报错如下在网上看也有这个错,但是按照网上的解决方法都不行,比如注释掉mpeg4ip.h文件里的126行或修改123-129行。求大神帮忙解决啊...

这是个很萌的名字
2016/06/14
393
3
Ubuntu15.10无法安装ap-hotspot的问题

Lenovo:~$ sudo apt-get install ap-hotspot 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 E: 无法定位软件包 ap-hotspot 求助各位大婶,最近安装啦Ubu...

Newbie-Linux
2016/01/03
425
2
Ubuntu15.10上的Docker Registry问题解决

Docker在Ubuntu15.10上搭建registry时出现问题,总是报TLS错。 1、Ubuntu14.04及之前版本的解决方法 然后,网上搜索的解决办法都是: 修改/etc/default/docker文件,加入: DOCKEROPTS='--in...

openthings
2016/04/14
203
0

没有更多内容

加载失败,请刷新页面

加载更多

linux使用ntfs-3g操作ntfs格式硬盘

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装 ...

linuxprobe16
51分钟前
1
0
kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
7
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
17
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部