> CentOS > CentOS故障 >

centos5.6部署golang环境遇到的问题

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

(责任编辑:IT)