您的位置:首页 > 运维架构 > Linux

Linux安装GO语言环境

2017-07-15 16:13 369 查看

Ubuntu、Debian或Linux Mint安装Go语言

基于 Debian的 Linux 发行版本都可以使用 apt-get 命令来进行安装:

sudo apt-get install golang


要查看当前系统安装的 Go 语言版本可以使用如下命令:

go version


由于 Go 代码必需保存在 workspace(工作区)中,所以我们必需在 Home 目录(例如 ~/workspace)创建一个workspace 目录并定义 GOPATH 环境变量指向该目录,这个目录将被 Go 工具用于保存和编辑二进制文件。

mkdir ~/workspace
echo 'export GOPATH="$HOME/workspace"' >> ~/.bashrc
source ~/.bashrc


根据不同的需要,我们可以使用 apt-get 安装 Go tools:

sudo apt-cache search golang


Fedora、CentOS或RHEL安装Go语言

基于 Red Hat 的 Linux 发行版本都可以使用 yum 命令来进行安装:

sudo yum install golang


要查看当前系统安装的 Go 语言版本可以使用如下命令:

go version


接下来还是在 Home 目录(例如 ~/workspace)创建一个 workspace 目录并定义 GOPATH 环境变量指向该目录,这个目录将被 Go 工具用于保存和编辑二进制文件。

mkdir ~/workspace
echo 'export GOPATH="$HOME/workspace"' >> ~/.bashrc
source ~/.bashrc


根据不同的需要,我们可以使用 yum 安装 Go tools:

yum search golang


为Linux手动安装Go语言

由于大家使用的 Linux 源不尽相同,也不见得是最新版本或需要版本的 Go 语言包,所以我们说一下如何手动安装指定版本。

下载 Go 语言文件

64-bit Linux

wget http://www.golangtc.com/static/go/go1.4.2.linux-amd64.tar.gz


32-bit Linux

wget http://www.golangtc.com/static/go/go1.4.2.linux-386.tar.gz


下载地址:http://golangtc.com/download

解压二进制文件到 /usr/local 目录

sudo tar -xzf go1.4.2.linux-xxx.tar.gz -C /usr/local


使用 vi 在环境变量配置文件 /etc/profile 中增加如下内容:

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


检查 Go 语言版本

go version


定义 GOPATH 环境变量到 workspace 目录

export GOPATH="$HOME/workspace


运行GO程序

新建项目(应用包)。

一般来说,建议包名和目录名保持一致,所以,在src文件夹下,按照你想要创建的包名,组织文件夹路径。

这里,我们在/home/gopath/src下面,建立hello文件夹。

说明:

如果你的包名为 mygo/first/hello, 那么你就需要这样的目录结构:/home/gopath/src/mygo/first/hello

如果考虑到引入Git版本库管理,那么可以建立这样的包名: github.com/mytest。

新建go代码

/home/gopath/src/hello下面,建立helloworld.go文件,并编辑,加入如下代码:

package main

import "fmt"

func main() {

fmt.Printf("Hello, world.\n")

}


编译生成go程序

在任意文件路径下,运行:

go install hello


也可以进入项目(应用包)的路径,然后运行:

go install


注意,在编译生成go程序的时,go实际上会去两个地方找程序包:

GOROOT下的src文件夹下,以及GOPATH下的src文件夹下。

在程序包里,自动找main包的main函数作为程序入口,然后进行编译。

运行go程序

在/home/gopath/bin/下,会发现出现了一个hello的可执行文件,用如下命令运行:

./hello
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  go语言