首页 > 在Ubuntu 12.04 64bit上配置,安装和运行go程序

在Ubuntu 12.04 64bit上配置,安装和运行go程序

注意:

下面的安装配置均遵从官网或是教材《Go语言程序设计》中的部分内容.



顺便说下,这是一本很难得的Go语言的入门教程,非常基础和全面。起初我因为这本书的封面比较讨厌它,闲置几年之后,一次偶尔要用时静心翻阅之后,发现写得还不错,而且作者的官网

http://www.qtrac.eu/gobook.html

是一直在更新的,实在难能可贵。



一.下载和安装go

在Ubuntu12.04上如果使用go安装包安装,只需在命令行输入

sudo apt-get install golang-go





如果是该方式安装(在Ubuntu上比较推荐这种方式,比较简单),将不需要设置go语言的环境变量,安装完成自己运行下面的命令查看

go version



下面我们关注更具普遍性的源码安装方式,它在linux发行版本中都是适用的.



进入go语言的官网http://golang.org/

根据操作系统和CPU架构选择所要安装的go版本,我所用的操作系统是Ubuntu 12.04 64bit,所以我将下载Linux下的amd64版本:

假如是旧版本升级,建议先删除旧版本再下载并安装全新的版本

wget https://go.googlecode.com/files/go1.2.linux-amd64.tar.gz



安装到系统目录

下载该archive后,extract它到系统目录/usr/local下面,在/usr/local/go下面生成一个go tree,比如

tar zxvf go1.2.linux-amd64.tar.gz -C /usr/local

建议使用root用户设置永久环境变量

vim /etc/profile

在最末行加入

export PATH=/usr/local/go/bin:$PATH

保存退出并更新

. /etc/profile

你可以使用下面的命令验证,刚才设置的环境变量是否生效?

echo $PATH

注意:这种方法,需要你全程都使用root用户登录,包括go的workspace目录也在root目录下面.



安装到自定义目录(custom location)

假如你只是使用远程Linux服务器的一个普通用户,没有root权限,那么你只能将go安装到你的home目录下面,此时必须设置GOROOT环境变量

比如,你安装go到你的home目录下面,你需要设置永久环境变量

vim ~/.bashrc

在末行加入

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin

保存退出并更新

. ~/.bashrc

注意:这里加入$GOROOT/bin的路径到PATH环境变量下面,就是为了在所有路径下直接执行go,godoc,gofmt等命令,参见下面的截图:







二.卸载go


如果你需要卸载go,你需要删除安装到系统中的go目录,并且同时从/etc/profile或是~/.bashrc中删除go相关的环境变量,并同步更新该配置文件.



三.验证go安装

方法一:直接在当前命令行下面运行

go version

如果能够正确显示版本信息,说明go的安装配置基本正确





方法二

(暂不推荐这个例子,因为它涉及workspace的设置,参见后面的分析)



写一个简单的hello world程序hello.go进行验证:

package main

import "fmt"



func main() {

    fmt.Printf("hello, world ")

}

使用go工具编译和运行

$ go run hello.go

hello, world

如果结果显示正确,说明go的环境设置是正确的



四.搭建工作环境 setup your work environment

下面假设go在我的工作机器上已经成功搭建.

构建go程序, 有两步是必须的:编译和链接,所有这两步都由go构建工具来完成即可.但是go构建工具能够构建本地程序和本地包需要满足3个条件:

(1)Go的bin目录必须在环境变量中,这个在我们上面的go的安装配置中已经得到保证.

(2)必须有一个包含src的目录树,其中包含了本地程序和本地包的源代码

(3)src的上一级目录必须在环境变量GOPATH中



go工具要求你以一种特殊的方式组织代码,也就是说,go code必须放在一个workspace中, workspace是一个多重嵌套目录结构(hierarchy),它的root目录下有3个目录:

src  --包含go的源文件,被组织成一个package,每个包一个目录

pkg  --包含package object

bin  --包含可执行文件

go工具构建src中的package,安装生成的binaries进pkg和bin目录下面



GOPATH环境变量指定了你的workspace的位置,可能是你开发go代码时唯一需要设置的环境变量, 在开始源码开发前,需要先创建一个workspace目录并相应设置为GOPATH环境变量,workspace目录可以放在系统的任何地方,只要不和go的安装目录相同就可以了.



为了在多个目录下开发自己的go程序和包,我们需要如下设置该环境变量

mkdir -p ~/program_develop/go_demo

vim ~/.bashrc

export GOPATH=/home/taoyx/program_develop/goeg:/home/taoyx/program_develop/go_demo

export PATH=$PATH:$GOPATH

保存退出,并更新

. ~/.bashrc

做了上述设置后,我们所生产的go程序就可以在系统的任何路径下执行



五.下载该书相关的源代码

从该书官网http://www.qtrac.eu/gobook.html下载相应的源码包,使用chrome下载就可以了.

解压到指定目录:

cd 下载`

unzip gobook-1.0.zip -d ~/program_develop/

cd ~/program_develop/goeg

这样我们就得到了所有的例子源码



下面验证一个示例程序是否可以运行?

cd src/hello

go build 

生成的可执行文件在当前目录下面,直接运行

./hello



另一种方法:生成的可执行文件到workspace的bin目录下,而非当前的目录下面

go install

cd ~/program_develop/goeg/bin

./hello

注意:go build和go install的区别

go install与go build所做的工作完全相同,唯一的区别是,go install将生成的可执行文件放入$GOPATH/bin下面,而go build仅在源码的当前目录下面



六.在本地查看某个包中的文档

在终端中使用godoc命令来查看整个包或是包中某个特定功能的文档,例如

在终端执行

godoc image NewRGBA

将会输出关于函数image.NewRGBA()的文档

godoc image/png

将输出关于整个image/png包的文档



七.在本地查看go语言官方文档

现在终端运行godoc工具,提供一个参数以使godoc运行为Web服务器

godoc -http=:8000

这里端口号可以任意指定, 只要不跟已经运行的服务器端口号冲突就行,然后,在chrome浏览器中打开

http://localhost:8000/

即可在本地查看go语言的官方文档,跟官网 golang.org的首页非常相似.参见下面的截图:







八.参考文献:

Go语言程序设计,许式伟,吕桂华等翻译

http://golang.org/#

https://code.google.com/p/go/downloads/list

http://golang.org/doc/install

http://golang.org/doc/code.html

http://pkgs.org/download/golang   golang下载包

更多相关:

  • 问题出现的场景: 有个go写的项目,原来是用go vendor来管理依赖包的,现在改为是用go module方式了,转换之后,编译成功,发现了上面的错误。很显然连接kafka集群报错了。 问题的原因: 网上搜了下,很多说是防火墙啥的问题,其实不是。本质原因是,我项目使用的如下kafka客户端库 github.com/Shopi...

  • 详见本博博文 http://blog.csdn.net/tao_627/article/details/79375950 这里只是简单记录一下实操步骤,假定用户为root: wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz tar zxvf go1.10.linux-a...

  • 升级Go新版本的原因 目前Ubuntu 16.04.3上最新的二进制Go版本是1.6.2,运行github上的一个大的go项目,发现context包在go版本1.6以上和以下的import方式有差异 在go1.7及以上版本context包被正式列入官方库中,所以我们只需要import "context"就可以了,而在go1.6及以下版...

  • 1.安装 sudo apt-get install golang-go 目前go的最新版本是1.9.2,但是在Ubuntu 16.04上采用预编译好的包安装的话,只能是go 1.6.x版本。 安装完成之后,查看go的版本号 2.配置环境变量 假定我的go脚本存放在~/program_develop/go_...

  • 1.我在.go文件的当前目录下面运行go install出现下面的错误: go install hello.go go install: no install location for .go files listed on command line (GOBIN not set) 此时设置了GOPATH宏,但是没有GOB...

  • 这里用散装版本的AutoScssStruct4Vue为例 先去https://github.com/accforgit/AutoScssStruct4Vue下载 然后把解压后的包放入C:UsersAdministrator.vscodeextensions(地址根据你自己的安装目录而定)    点开目录在资源管理器...

  • 网上搜到的结果大都不令人满意,这里综合了网上的结构,做了小许改动.希望对大家有帮助. 在Linux下的目录结构操作基本上使用opendir,readdir,closedir就够了. #include #include #include #include

  • 文章目录git 最小配置作用域git 创建本地仓库git log 查看版本演进.git 目录refs目录objectsgit 三种对象类型详解 (commit ,tree,blob)...

  • 一 . 进入目录权限 如果我在普通用户下创建了一个目录f1,然后使用chomd u-rwx,g-rwx,o-rwx之后,我在普通用户下想进入f1目录,权限不允许。 然后我切换到超级用户下,再次尝试进入到f1目录,这个时候允许进入。 然后回到普通用户下,只给f1的所有者读的权限,然后在普通用户下尝试进入,此时权限还是...

  • windows下rpc框架thrift的环境配置 引用链接: https://www.cnblogs.com/49er/p/7193829.html 最近在弄windows下 的Facebook的rpc 框架 thrift , 网上东西看了很多, 但是大都不能一篇到位, 这里总结了一下, 也记一下自己遇到的问题和解决的方法 这里...

  • 首先声明: 下面的源码包改编来自github上老太太写的一个"史上最简单的DHT爬虫“项目: https://github.com/laomayi/simDHT 相关源码在附件源码包dht这个文件夹中,这个源码使用python实现,需要使用到mysql数据库. 下面是源码目录下的文件,比较简洁,log文件是刚才运行时创建的....