答案是:从源码编译安装Golang需先获取源码并配置构建环境,再通过引导Go版本编译生成二进制文件,最后设置GOROOT、GOPATH和PATH环境变量以完成配置。

在Linux系统下从源码编译安装Golang,核心步骤无非是获取Go的源代码,然后通过系统自带的编译工具链将其构建成可执行文件,并最终配置好相应的环境变量。这通常是为了获取最新的Go版本、进行特定环境的定制,或者仅仅是想深入了解Go的构建过程。
解决方案
要从源码编译安装Golang,你需要确保系统具备一些基本的构建工具,比如
gcc
git
准备构建环境 确保你的Linux发行版安装了C编译器(通常是
gcc
git
sudo apt update sudo apt install build-essential git
在CentOS/RHEL系:
立即学习“go语言免费学习笔记(深入)”;
sudo yum groupinstall "Development Tools" sudo yum install git
获取Go源代码 Go的源代码托管在GitHub上。你可以选择克隆官方仓库:
git clone https://go.googlesource.com/go $HOME/go-src
这里我习惯性地把它放到
$HOME/go-src
cd $HOME/go-src git checkout go1.22.0 # 替换为你想要的版本
设置引导Go版本 (GOROOT_BOOTSTRAP) 这一步非常关键,也常常是新手容易忽略的地方。Go是用Go语言自身编写的,所以编译Go需要一个已经存在的Go编译器。
$HOME/go-bootstrap
GOROOT_BOOTSTRAP
export GOROOT_BOOTSTRAP=$HOME/go-bootstrap/go
GOROOT
PATH
开始编译 进入源代码的
src
all.bash
cd $HOME/go-src/src ./all.bash
这个过程可能会持续几分钟到十几分钟,具体取决于你的机器性能。如果一切顺利,你会看到
ALL TESTS PASSED
配置环境变量 编译完成后,Go的二进制文件会生成在
$HOME/go-src/bin
PATH
GOROOT
GOPATH
~/.bashrc
~/.zshrc
~/.profile
# Go 语言的安装路径 export GOROOT=$HOME/go-src # Go 语言的工作空间,用于存放你的项目代码和第三方库 export GOPATH=$HOME/go # 将 Go 的 bin 目录添加到 PATH export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存文件后,执行
source ~/.bashrc
验证安装 打开一个新的终端,运行
go version
go env
go version go env
如果显示了你编译的Go版本信息,并且
go env
GOROOT
GOPATH
选择从源码编译安装Go,而不是简单地通过
apt
yum
brew
首先,版本控制的极致需求。包管理器提供的Go版本往往不是最新的,或者说,它们在更新速度上总是滞后于Go官方发布。对于那些希望第一时间体验Go最新特性、测试某个即将发布的版本,或者需要针对特定Go版本进行开发和调试的开发者来说,源码编译是获取“第一手”Go版本的唯一途径。有时,你甚至可能需要编译Go的开发分支(
master
其次,定制化和透明度。源码编译给了你完全的控制权。你可以检查、修改甚至调试Go语言自身的代码。这对于那些需要深入理解Go运行时、垃圾回收机制,或者想为Go贡献代码的开发者来说,是极其宝贵的。虽然普通开发者很少会去修改Go语言本身,但了解其构建过程,对理解整个生态系统都有帮助。比如,你可能想在某个嵌入式系统上编译Go,而那个系统没有现成的Go包,那么源码编译就是唯一的路。
当然,我们也要承认,源码编译带来的复杂性也更高。它需要你手动处理依赖、设置环境变量,并且在更新时也需要重复这些步骤。而包管理器则省去了这些麻烦,自动化程度高,对于日常开发来说,通常是更便捷的选择。所以,在选择编译方式时,我总是会权衡:我是否真的需要最新版本?我是否需要对Go本身进行定制或深入研究?如果答案是肯定的,那么源码编译就是值得投入的。
源码编译Go虽然提供极致的控制,但也意味着你可能会遇到一些比包管理器安装更“原始”的问题。这些错误往往指向环境配置或依赖缺失。
"go: cannot find GOROOT directory" 或 "go: cannot find GOROOT_BOOTSTRAP"
GOROOT_BOOTSTRAP
GOROOT_BOOTSTRAP
$HOME/go-bootstrap/go
$HOME/go-bootstrap/go/bin
go
$GOROOT_BOOTSTRAP/bin
unset GOROOT_BOOTSTRAP
all.bash
"gcc: command not found" 或 "make: command not found"
系统安装步骤 1、安装QuickWAP组件。将QuickWAP.dll拷贝到System32文件夹下,在开始菜单运行 regsvr32 QuickWAP.dll 即可。 2、将“WAP2.0企业系统源码”目录下的文件通过FTP传到服务器上,或在本机IIS上调试,然后通过域名或IP访问。 简介: 新版企业WAP2.0手机网站采用QuickWAP X
0
sudo apt install build-essential
sudo yum groupinstall "Development Tools"
网络连接问题导致依赖获取失败
HTTP_PROXY
HTTPS_PROXY
GOPROXY
GOPROXY
unset GOPROXY
权限问题
/usr/local/go
$HOME/go-src
sudo
GOROOT/bin
PATH
遇到错误时,最重要的是仔细阅读终端输出的错误信息。Go的构建脚本通常会给出相当详细的提示。同时,查阅Go官方的安装文档也是一个好习惯,它会提供最新的编译指南和常见问题解答。
正确配置Go语言的环境变量是确保系统能够找到并执行Go命令、管理项目依赖以及构建应用程序的关键。这不仅仅是把Go的路径加到
PATH
GOROOT
GOPATH
GOROOT
go build
go run
go test
GOROOT
GOROOT
export GOROOT=$HOME/go-src # 假设你将源码编译到此
GOPATH
GOPATH
src
pkg
.a
bin
go install
GOPATH
GOPATH/src
go.mod
GOPATH/bin
gopls
delve
go install <tool_path>
$GOPATH/bin
GOPATH
bin
PATH
export GOPATH=$HOME/go # 这是一个常见的设置,你也可以选择其他路径
确保这个目录存在:
mkdir -p $HOME/go
PATH
PATH
$GOROOT/bin
$GOPATH/bin
PATH
go
go install
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
注意,
$PATH
将环境变量持久化
为了让这些环境变量在每次打开新终端时都自动生效,你需要将它们添加到你的shell配置文件中。最常见的配置文件是
~/.bashrc
~/.zshrc
~/.profile
nano ~/.bashrc
export
source ~/.bashrc
验证配置
在完成配置并使之生效后,务必打开一个新的终端窗口,然后运行以下命令进行验证:
go version go env GOROOT go env GOPATH echo $PATH
确保
go version
go env GOROOT
go env GOPATH
echo $PATH
$GOROOT/bin
$GOPATH/bin
以上就是Golang Linux系统下源码编译安装步骤的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号