Linux 安装 Go 语言(不使用 root 权限)

安装 Go 语言,在 Mac 平台用 brew, Windows 用 exe,Linux 上一般不想用包管理器自带的,Go 语言没有提供一键式的安装脚本,也没有 uv, rustup 这种自己管理自己的工具。(应该为 Go 语言写一个 nvm.fish 这样的工具,但是我一般只用最新版的 Go,目前也没有这个需求,可能就鸽了)

如果我用 Ubuntu,我一般使用 snap 安装最新的 Go。如果是 Arch,包管理器就已经提供了最新的 Go。如果是其他发行版呢?就按照 Go 官方步骤,将所有的 Go 相关文件解压到 /usr/local/(也就是都放在 /usr/local/go 目录下),然后设置 PATH 中添加 /usr/local/go/bin

放在 /usr/local 目录下是需要 root 权限的,这很不好,也很不方便。一般打包成 RPM 包的 Go 相关安装包,相当于把 go 文件夹下的一些内容直接放在 /usr 目录下。

下载的 Go 安装包解压出来就像是一个 Linux 的目录层级。

Go 语言有自己的一套目录层级规范。Go 语言提供的工具链也都是在 go/bin 这样的目录下,我们手动安装 Go 的话也不污染系统安装程序的目录。

下面就介绍一下,我认为的安装 Go 语言比较好的方式吧。

下载最新的 Go 语言安装包:

wget "https://dl.google.com/go/$(curl https://go.dev/VERSION?m=text).linux-amd64.tar.gz"

这个链接[1]是下载最新的 x86_64 架构的 Go 语言安装包。

解压到对应的目录

我认为的最佳实践是将 Go 解压到 $HOME/.local/[2]:

tar -C $HOME/.local/ -xzf go1.25.5.linux-amd64.tar.gz

设置 PATH 环境变量

如果是 Bash/Zsh 用户总是麻烦一点的,把下面的内容放在 ~/.profile

# set PATH so it includes sys's /usr/local/go/bin if it exists
if [ -d "$HOME/.local/go/bin" ]; then
    PATH="$HOME/.local/go/bin:$PATH"
    export GO111MODULE=on
    export GOPROXY=https://goproxy.cn,direct
fi

如果是 Fish 用户就很简单了,执行一遍下面的命令就可以了:

fish_add_path $HOME/.local/go/bin

如果你把 fish 相关的一些缓存清理了,这条命令就要重新再执行一次。你也可以保存命令到 ~/.config/fish/conf.d/ 目录下的一个文件夹中去。


  1. https://stackoverflow.com/questions/51933636/url-for-latest-stable-go-release ↩︎

  2. https://stackoverflow.com/questions/65517046/how-to-install-go-without-root ↩︎

posted @ 2025-12-26 15:20  wngtk  阅读(2)  评论(0)    收藏  举报