在Debian系統上管理Go語言(Golang)版本,可通過版本管理工具(推薦,支持多版本切換)或手動安裝(簡單但不夠靈活)實現,以下是具體方法:
GVM是專為Go設計的版本管理工具,支持多版本安裝、切換及項目級環境隔離,是Debian下最常用的方案。
sudo apt-get install curl git mercurial make binutils bison gcc build-essential
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
echo '[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"' >> ~/.bashrc
source ~/.bashrc
gvm listall
gvm install go1.21.0
(替換為目標版本)gvm use go1.21.0 --default
(設為默認)gvm local go1.20.5
(生成.go-version
文件)gvm uninstall go1.19.3
asdf是通用語言版本管理工具,支持Go、Python等多種語言,適合需要統一管理多語言版本的用戶。
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
source ~/.bashrc
asdf plugin-add golang https://github.com/asdf-vm/asdf-golang.git
asdf install golang go1.21.0
asdf global golang go1.21.0
asdf local golang go1.20.5
goenv是輕量級Go版本管理工具,專注于Go版本切換,適合偏好簡潔的用戶。
git clone https://github.com/syndbg/goenv.git ~/.goenv
echo 'export PATH="$HOME/.goenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(goenv init -)"' >> ~/.bashrc
source ~/.bashrc
goenv install 1.21.0
goenv global 1.21.0
goenv local 1.20.5
若無需多版本切換,可直接下載官方二進制包手動安裝,適合簡單場景。
go1.21.0.linux-amd64.tar.gz
),解壓至/usr/local
:wget https://dl.google.com/go/go1.21.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
~/.bashrc
(或~/.zshrc
),添加以下內容:export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go # 可選,用于存放項目代碼
source ~/.bashrc
go version
,輸出類似go1.21.0 linux/amd64
即為成功。無論使用哪種版本管理方式,Go Modules(Go 1.11+內置)都是管理項目依賴的關鍵工具,可避免版本沖突并實現可復現構建。
go mod init <module-name>
(如go mod init github.com/user/project
)。go get package-name@version
(如go get github.com/gin-gonic/gin@v1.9.1
),自動更新go.mod
和go.sum
文件。go mod tidy
,移除未使用的依賴并添加缺失的版本。