作者:红颜内 | 来源:互联网 | 2017-07-01 16:17
centos5.6部署golang环境遇到.make.bash:line141:29239Segmentationfault“$GOTOOLDIR”go_bootstrapclean-istd
1.前几天在centos5.6下部署golang环境。在执行./all.bash脚本的时候碰到问题。当时我也没怎么在意。就忽略了,继续后面的操作。做完了所有的操作,蛋疼的发现,这些都是无用功。环境还是没装上。
2.当时找不出原因。就搁置了几天。今天重新部署下。顺便找了下那天报错的那个原因。才发现,原来是那个报错信息导致了后面的操作都是无效的。
3.报错信息是:
./make.bash: line 141: 29239 Segmentation fault “$GOTOOLDIR”/go_bootstrap clean -i std
4.找了很久的资料。爬了不少站。官网的资料都是英文的,蛋疼的一个也看不懂。无一种在某论坛上看到一样的报错信息。
5.原来是centos5.6的内核版本太低所致。升级下内核就好。得益于前一篇文档顺利解决内核升级不能启动的原因。golang环境成功部署。
6.升级完内核后按照下面步骤成功部署完golang环境
安装Mercurial
在进行后面的操作之前需要安装Mercurial版本管理系统(可以输出hg名词检测是否安装)。输入以下命令安装:
$ yum install mercurial
获取代码
以下命令会创建一个go目录。切换到相应目录,并且确保当前位置不存在go目录,运行命令:
$ hg clone -r release https://go.googlecode.com/hg/ go
安装Go
编译go环境:
$ cd go /src
$ ./all.bash 编译完成后,结尾会打印以下信息。 Installed Go for linux/amd64 in /home/you/go. Installed commands in /home/you/go/bin. *** You need to add /home/you/go/bin to your $PATH. ***
设置$PATH
$ cd /etc/profile.d/
$ vi go.sh
export GOROOT=/home/you/go
export GOBIN=$GOROOT/bin export GOARCH=amd64 export GOOS=linux export PATH=.:$PATH:$GOBIN $ . ./go.sh 编写程序
以hello.go代码为例,用以下命令编译:
package main
import "fmt"
func main(){
fmt.Printf("hello world\n")
}
$ go build hello.go
运行程序: $ ./hello
关于 如何管理编译go项目需参阅https://golang.org/doc/code.html