Linux下go1.8安装方法

之前迷上了神奇的Go语言,就在windows上装上了Go1.8,挺顺风顺水的,不过最近换上了Linux时,编译安装就炸了,各种报错。今天就留个记录,备个份!

编译安装Go1.8的主体思路:

  1. github中clone下来
  2. 确保linux系统安装较新的libc,gcc(apt,yum随便搞上)
  3. 切换库分支至1.4(刚clone下来的库),去到src目录,执行all.bash
  4. 把编译安装完的1.4目录cp到/root/,并更名为go1.4
  5. 将刚刚的编译安装的仓库恢复原状(git clean -dfx),在切换到1.8,同样刚刚的操作,执行all.bash,安装1.8
  6. 然后1.8安装完后,配置profile

坑点

1.由于Go1.8的安装需要go1.4的二进制,所以,如果没安装go1.4的小伙伴,直接安装1.8估计会这样

1
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

这个GOROOT_BOOTSTRAP地址默认在/root/go1.4(~/go1.4)

2.用all.bash安装1.4时炸了

报错如下

1

2

3

4

5
# cmd/pprof

.../go1.4/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic?

.../go1.4/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic?

runtime/cgo(.text): unexpected relocation type 298

runtime/cgo(.text): unexpected relocation type 298

拿去不用谢我.jpg

所以解决方案是

1

2
 cd ~/go1.4/src

CGO_ENABLED=0 ./make.bash

导致的原因是:CGO_ENABLED: Controls cgo usage during the build. Set it to 1 to include all cgo related files, .c and .go file with “cgo” build directive, in the build. Set it to 0 to ignore them.在构建过程中控制cgo的使用。当设置为1,在构建时,会包含所有cgo相关的文件,如带有”cgo”编译指令的.c和.go文件。当设置为0,则忽略它们(即禁用CGO)

3.在顺利的安装完1.4后再安装1.8,应该也没问题了,最后设置一下环境变量

1
vim /ect/profile

在里面加上:

1

2

3
# Golang Env

export PATH=$PATH:/home/xx/go/bin  //xx根据实际情况填写

export GOPATH=/home/xx/go-projects  //xx根据实际情况填写

然后重启电脑,执行

1
go version

显示到版本号的话就可以愉快的玩耍了!

总结

虽然安装的历程有点坎坷,不过看在go编程这么奇葩有趣的份上,忍了吧!O(∩_∩)O哈哈~

参考

中国网络环境下源码编译安装Go1.6

原文:大专栏  Linux下go1.8安装方法

原文地址:https://www.cnblogs.com/sanxiandoupi/p/11633176.html

时间: 2024-10-27 09:25:06

Linux下go1.8安装方法的相关文章

linux下的ImageMagick安装方法

 linux下的ImageMagick安装方法  由于没有图形化界面的支持,在Linux(CentOS 6.4 x64)上的配置相对Windows XP还是麻烦了一点.   1.下载ImageMagick和JMagick的源文件(http://downloads.jmagick.org/6.4.0/):ImageMagick-6.4.0.-0tar.gz   2.解压并安装ImageMagick: # tar xzvf ImageMagick-6.4.0-0.tar.gz # cd ImageM

ORACLE 11G在Linux下的标准安装方法(下)

一.相关文件夹 ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录.ORACLE_BASE下是admin和product. ORACLE_HOME下则是ORACLE的命令.连接库.安装助手.l监听等等一系列的东西.ORACLE_HOME比ORACLE_BASE目录要更深一些.也就是说:ORACLE_HOME=$ORACLE_BASE/product/oracle_version. RACLE_SID这个环境变量全称"Oracle System Ident

Linux下mplayer源代码安装方法

http://www.linuxidc.com/Linux/2007-08/6820.htm 1下载安装mplayer需要的各种软件 去这里下载http://www.mplayerhq.hu/MPlayer/ MPlayer-1.0rc1.tar.bz2 下载你喜欢的skin 例如你下载 Abyss-1.6.tar.bz2 下载必需的code all-20061022.tar.bz2 windows-all-20060611.zip 2进行安装 (1)安装相信泊解压(code) mkdir /u

ORACLE 11G在Linux下的标准安装方法

一.简介 Oracle数据库在系统运维中的重要性不言而喻,通过熟悉Oracle的安装来加深对操作系统和数据库知识的了解.本次安装测试的环境如下: 操作系统:CentOS 6.5 X64 数据库:OracleDatabase 11g Release 2 (11.2.0.1.0) for Linux x86-64 二.更新系统 先通过重新设定系统的更新源来加快后续软件的安装进度,常用的升级源可按以下命令指定.通过以下方式加入东软的源,经过测试该网站的源比163等大公司的更稳定(也有可以是163的资源

Linux下部分软件安装方法

这里以Ubuntu14.04为例: 一.安装codelite 1 sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc 2 sudo apt-add-repository "deb http://repos.codelite.org/ubuntu/ $(lsb_release -sc) universe" 3 sudo apt-get update 4 sudo apt-get install code

linux下几种安装软件的方法

linux里面软件的安装方法: 1.rpm -ivh 包名.rpm: 有依赖问题,安装A, A需要先安装B 缺点:不能定制 2.yum安装自动解决rpm安装的依赖问题,安装更简单化: 有点:简单.易用.高校 缺点:不能定制 3.编译(C语言编码-编译二进制等): ./configure(配置),make(编译),make install(安装) 优点:可以定制 缺点:复杂.效率低 4.定制化制作rpm包,搭建yum仓库,把我定制的rpm包放在yum仓库,进行yum安装: 优点:结合了2的优点和3

Linux下Kafka单机安装配置方法(图文)

Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: •Kafka将消息以topic为单位进行归纳.•将向Kafka topic发布消息的程序成为producers.•将预订topics并消费消息的程序成为consumer.•Kafka以集群的

linux下nginx的安装

以Red Hat Enterprise Linux 5为例进行讲解. 相关系列: linux下jdk的安装 linux下ant的安装 linux下redis的安装 linux下svn的安装 linux下nginx的安装 linux下graphviz的安装 linux下doxygen的安装 安装nginx版本为0.8.36 一.下载nginx 下载地址:http://www.nginx.org/ 选择nginx-0.8.36 将该下载包拷贝到/usr/local/下(随意了,找个地方就好) 二.安

Linux下源码安装CodeBlocks

Linux下源码安装CodeBlocks qianghaohao(CodingNutter) 一. 安装平台说明: CentOs6.4-i686  gcc-4.4.7 二. 下载最新源码: http://www.codeblocks.org/downloads 在此安装的是最新版:Code::Blocks 16.01 三. 阅读官方安装说明文档: http://wiki.codeblocks.org/index.php/Installing_Code::Blocks_from_source_on