ubuntu18.04安装Go语言
目录
ubuntu18.04安装Go语言
Go是由Google创建的现代开源编程语言。 Go中编写了许多流行的应用程序,包括Kubernetes,Docker和Grafana。
1. 下载go并解压缩
- 到Go官网下载Go安包,下载地址
。我直接下载的是最新的
go-1.12.1
。选择的是linux 64位版本:
- 国内比较快的下载链接,通过golang中文社区进行下载:
- 解压缩
go1.12.1.linux-amd64.tar.gz
。
$ tar -zxvf go1.12.1.linux-amd64.tar.gz
- 将解压后的文件夹,放到自己平常的安装包位置,并设置
0777
权限
$ sudo cp -rf go /usr/local
$ cd /usr/local
$ sudo chmod -R 0777 go
2. 配置go环境变量
go语言的环境变量配置,需要两个值:
GOROOT
是系统上安装Go软件包的位置GOPATH
是工作目录的位置
- 创建工作目录,我选择创建在
/home/hadoop
目录下.
$ mkdir GOPATH
$ sudo chmod -R 0777 GOPATH
- 使用
sudo gedit ~/.bashrc
命令修改环境变量,在弹出的记事本中添加以下内容。同时也在GOPATH
目录下创建src和bin目录。
export GOROOT=/usr/local/go #GOROOT是系统上安装Go软件包的位置。
export GOPATH=/home/hadoop/GOPATH #GOPATH是工作目录的位置。
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
- 使用一下命令使环境变量生效,并可以查看环境变量
$ source ~/.bashrc
$ export
- 使用同样的方法,修改
/etc/profile
文件,为其添加go环境变量(这是我的个人习惯,喜欢两个地方都作更改)。
3. 验证go安装是否成功
- 输入以下命令查看go版本,顺便验证go是否安装成功。
$ go version
编写hello程序,验证go安装是否成功。
① 在
GOPATH
目录下创建hello
目录,用于存放go的第一个程序。② 在
hello
目录下,创建hello.go
文件,内容如下:
package hello
import "fmt"
func main() {
fmt.Printf("Hello, World\n")
}
③ 切换到
hello.go
的目录,并运行
hello.go
文件。
$ cd ~/GOPATH/hello // 切换到`hello.go`的目录
$ go run hello.go // 运行`hello.go`文件
④ 也可以使用
go build
编译go文件的方式执行程序。
$ cd ~/GOPATH/hello # 切换到`hello.go`的目录
$ go build # 编译`hello.go`文件,得到一个名为hello的可执行文件
$ ./hello # 执行名为hello的可执行文件
至此,go语言已经成功安装!
4. 使用过程中的发现
- 最开始,自己一直不明白为什么需要创建
GOPATH
目录,后来在编译别人的go项目时,别人的比编译命令如下:
echo "building orderer..." # 终端显示的内容
go install madledger/orderer # 安装某个模块
这时会报错,说不能在
${GOPATH}/src
和
${GOROOT}/src
下面找到对应的包。
building orderer...
can't load package: package madledger/orderer: cannot find package "madledger/orderer" in any of:
/usr/local/go/src/madledger/orderer (from $GOROOT)
/home/hadoop/GOPATH/src/madledger/orderer (from $GOPATH)
自己恍然大悟,原来go命令会自动到
${GOPATH}/src
或${GOROOT}/src
下面去寻找对应的包。所以自己将madledger
拷贝到${GOPATH}/src
目录下,再运行编译名命令。执行结果如下:而且如果是install命令,还会在
${
GOPATH}/bin
或${
GOROOT}/bin
下面安装对应的go可执行文件。所以,如果想直接在任何目录编译go文件,可以将go文件放到src目录下,他会自动去寻找相应的包。
go build
命令会在当前目录生成对应的可执行文件。
参考链接: