本教程详细指导用户如何在Linux系统(以Linux Mint为例)上安装Go语言。内容涵盖了从安装必要的编译工具、正确配置.bashrc文件中的Go环境变量,到通过Mercurial克隆Go源代码并进行编译的全过程。文章强调了环境配置的准确性、命令执行的细节以及常见的安装问题和排查方法,旨在帮助用户顺利完成Go语言的安装与环境搭建。
1. 准备工作:安装必要的编译工具
在开始安装go语言之前,确保您的linux系统已安装所有必需的编译工具和库。这些工具对于从源代码编译go至关重要。
打开终端,执行以下命令安装所需软件包:
sudo apt-get update # 更新软件包列表 sudo apt-get install bison ed gawk gcc libc6-dev make
这些软件包提供了Go编译所需的C编译器(gcc)、构建工具(make)、词法分析器生成器(bison)以及文本处理工具(ed, gawk)和C标准库开发文件(libc6-dev)。
2. 配置Go语言环境变量
Go语言的安装和运行依赖于正确的环境变量配置。这些变量通常在用户主目录下的.bashrc文件中进行设置,以便每次打开新的终端会话时都能自动加载。
2.1 编辑.bashrc文件
使用文本编辑器(如gedit、nano或vi)打开.bashrc文件。这里我们以gedit为例:
立即学习“go语言免费学习笔记(深入)”;
gedit ~/.bashrc
如果gedit未安装,可以使用nano ~/.bashrc。
2.2 添加环境变量
在打开的.bashrc文件中,添加以下行。请注意,这里的路径配置与一些常见错误配置(如将GOROOT设置为~/gosource或GOBIN设置为~/bin)有所不同,务必确保准确性。
export GOROOT=$HOME/go export GOARCH=amd64 export GOOS=linux export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN
- GOROOT: 指定Go语言的安装根目录。这里我们将其设置为$HOME/go,即用户主目录下的go文件夹。
- GOARCH: 指定目标架构,amd64表示64位系统。
- GOOS: 指定目标操作系统,linux表示Linux系统。
- GOBIN: 指定Go可执行文件的存放目录。正确做法是将其设置为$GOROOT/bin,这样Go工具链生成的可执行文件(如6g、6l等)将放置在此目录。
- PATH: 将$GOBIN添加到系统的PATH环境变量中,以便您可以在任何目录下直接运行Go命令和工具。
保存并关闭.bashrc文件。
2.3 应用环境变量更改
为了使新配置的环境变量生效,您需要关闭所有当前打开的终端窗口,然后重新打开一个新的终端。或者,您也可以在当前终端中执行以下命令立即加载:
source ~/.bashrc
3. 验证环境变量设置
在继续下一步之前,务必验证环境变量是否已正确设置。
在新的终端中,运行以下命令检查Go相关的环境变量:
env | grep '^\(GO\|HOME=\|PATH=\)'
您应该看到类似以下的输出(路径中的peter会替换为您的实际用户名):
GOBIN=/home/peter/go/bin PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/peter/go/bin GOARCH=amd64 HOME=/home/peter GOROOT=/home/peter/go GOOS=linux
同时,您还可以检查当前工作目录和系统架构:
cd $GOROOT/src # 尝试进入GOROOT下的src目录,验证GOROOT是否正确 pwd # 应该显示 /home/peter/go/src uname -a # 检查系统架构,确保是x86_64或amd64
4. 克隆并编译Go源代码
环境变量配置无误后,接下来是获取Go源代码并进行编译。Go语言的早期版本使用Mercurial (hg) 进行版本控制。
4.1 克隆Go源代码
使用hg clone命令将Go源代码克隆到您在GOROOT中指定的目录。请注意,目标目录必须是$GOROOT,而不是其他名称,否则后续编译会出错。
hg clone -u release https://go.googlecode.com/hg/ $GOROOT
此命令会将Go的release分支代码克隆到$HOME/go目录下。根据网络状况,这可能需要一些时间。
4.2 编译Go
进入Go源代码的src目录,然后运行all.bash脚本来编译Go。
cd $GOROOT/src ./all.bash
编译过程会输出大量信息,并运行一系列测试。请耐心等待,直到看到类似以下成功消息:
< SNIP OUTPUT > ALL TESTS PASSED --- Installed Go for linux/amd64 in /home/peter/go. Installed commands in /home/peter/go/bin. The compiler is 6g.
ALL TESTS PASSED表示编译和测试都已成功完成。
5. 验证Go安装
编译完成后,Go的可执行文件(如6g编译器)应该已经安装到$GOBIN目录中。
您可以通过which命令来验证6g是否在您的PATH中并且可以被找到:
which 6g
如果一切顺利,您应该会看到类似/home/peter/go/bin/6g的输出,这表明Go编译器已成功安装并可执行。
6. 重要的注意事项和故障排除
- Linux的路径和文件名区分大小写:Go和go是完全不同的目录。请确保在配置环境变量和执行命令时,目录名的大小写与实际情况(通常是小写go)完全匹配。
- 仔细核对命令:在终端中输入命令时,务必仔细检查拼写,或者直接复制粘贴。$符号代表命令提示符,不应输入。
- 检查命令输出:每次执行命令后,仔细阅读终端的输出信息。错误消息通常会提供有价值的线索,指示问题所在。
- GOROOT与克隆目标的一致性:确保您在.bashrc中设置的GOROOT变量与您克隆Go源代码的目标目录完全一致。如果hg clone命令没有指定目标目录,它会默认克隆到当前目录下的hg文件夹,这通常不是我们期望的。
- 系统架构匹配:确保GOARCH变量(例如amd64)与您的Linux系统架构(通过uname -a查看)相匹配。不匹配会导致编译失败或生成不兼容的二进制文件。
- 权限问题:如果遇到权限错误,请检查相关目录和文件的读写权限。在某些情况下,可能需要使用sudo命令,但对于用户主目录下的操作,通常不需要。
- 网络问题:克隆Go源代码时,确保您的网络连接稳定。如果克隆失败,可能是网络问题导致。
通过遵循本教程的步骤并注意上述事项,您应该能够成功在Linux系统上安装Go语言环境。遇到问题时,请回顾每个步骤,并利用提供的验证命令进行排查。
暂无评论内容