![](/img/trans.png)
[英]“sudo apt-get install rJava” on Ubuntu 12.04 (precise pangolin) does not install the current version
[英]How to install the current version of Go in Ubuntu Precise
運行sudo apt-get install golang-stable
,我得到 Go version go1.0.3
。 有沒有辦法安裝go1.1.1
?
[更新(以前的答案不再適用)]
獲取最新版本:
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
另見維基
我喜歡在我的 Ubuntu 機器中使用GVM來管理我的 Go 版本。 使用起來非常簡單,如果您熟悉 RVM,那就很容易了。 它允許您在系統中安裝多個版本的 Go,並可以隨時在您想要的任何版本之間切換。
使用以下命令安裝 GVM:
sudo apt-get install bison mercurial
bash < <(curl -LSs 'https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer')
. "$HOME/.gvm/scripts/gvm"
然后就像這樣做一樣簡單:
gvm install go1.1.1
gvm use go1.1.1 --default
每當您啟動新的終端會話時,第二個命令末尾的默認標志會將 go1.1.1 設置為您的默認 Go 版本。
我使用了GoLang 官方存儲庫中的以下命令,它在我的 Ubuntu 14.04 上安裝了GoLang 1.6版
sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable
sudo apt-get update
sudo apt-get install golang
參考官方 GoLang Repo https://github.com/golang/go/wiki/Ubuntu看來這個 ppa 將來會一直更新。
[2015 年 10 月]回答是因為當前接受的答案sudo apt-get install golang
不是最新的,如果您不想安裝GVM
按照以下步驟操作。
sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
go
您的路徑export PATH=$PATH:/usr/local/go/bin
go version
檢查當前安裝的版本 如果你得到一個go version xgcc (Ubuntu 4.9.1-0ubuntu1) 4.9.1 linux/amd64
那么你做錯了什么,所以看看這篇文章: Go is Printing xgcc version but not go installed version
我從源代碼安裝。 這里有一個分步教程: http : //golang.org/doc/install/source
這是我發現在 Ubuntu 14.04 上安裝 go 的最直接和最簡單的方法,無需任何 ppa 或任何其他工具。
截至目前,GO的版本是1.7
使用 wget 獲取 Go 1.7.tar.gz
wget https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz
解壓並復制到/usr/local/
sudo tar -C /usr/local -xzvf go1.7.linux-amd64.tar.gz
您現在已經成功安裝了 GO。 現在您必須設置環境變量,以便您可以從任何地方使用go
命令。
為了實現這一點,我們需要在.bashrc
添加一行,所以,
sudo nano ~/.bashrc
並將以下行添加到文件末尾。
export PATH="/usr/local/go/bin:$PATH"
現在, go/bin
所有命令go/bin
將起作用。
通過執行檢查安裝是否成功
go version
對於離線文檔,您可以執行
godoc -http=:6060
離線文檔將在http://localhost:6060
筆記:
這里有些人建議更改 PATH 變量。
這不是一個好的選擇。
將其更改為/usr/local/go/bin
是暫時的,一旦您關閉終端,它就會重置。
go
命令只能在您更改 PATH 值的終端中工作。
您將無法使用任何其他命令,如ls, nano
或幾乎所有內容,因為其他所有內容都在/usr/bin
或其他位置。 所有這些都將停止工作,它會開始給你錯誤。
但是,這是永久性的,不會干擾其他任何事情。
刪除現有的 Go 版本:
sudo apt-get purge golang*
安裝最新版本的 Go:
sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go
使用以下內容在主路徑中創建.profile
文件:
# ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin directories PATH="$HOME/bin:$HOME/.local/bin:$PATH"
將 Go 工作區設置為環境變量:
GOPATH=~/.go
應用.profile
配置:
source ~/.profile
測試:
$ go version
go version go1.11.1 linux/amd64
參考: Go-GitHub-安裝
如果有人正在尋找安裝 Go 1.8,請遵循以下步驟:
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go
然后安裝去
sudo apt-get install golang-1.8-go
- 從https://golang.org/dl/下載
go1.6beta1.linux-amd64.tar.gz
到/tmp
wget https://storage.googleapis.com/golang/go1.6beta1.linux-amd64.tar.gz -o /tmp/go1.6beta1.linux-amd64.tar.gz
- 解壓到
/usr/local/bin
sudo tar -zxvf go1.6beta1.linux-amd64.tar.gz -C /usr/local/bin/
- 設置 GOROOT, GOPATH, [在 ubuntu 上添加以下到 ~/.bashrc]
mkdir ~/go export GOPATH=~/go export PATH=$PATH:$GOPATH/bin export GOROOT=/usr/local/bin/go export PATH=$PATH:$GOROOT/bin
- 核實
go version
應該顯示為
go version go1.6beta1 linux/amd64
go env
應該顯示為
GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/vats/go" GORACE="" GOROOT="/usr/local/bin/go" GOTOOLDIR="/usr/local/bin/go/pkg/tool/linux_amd64" GO15VENDOREXPERIMENT="1" CC="gcc" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0" CXX="g++" CGO_ENABLED="1"
這些天根據golang github with for Ubuntu ,可以通過 snap 輕松安裝最新版本的 Go:
使用 snap 也很有效:
# This will give you the latest version of go
$ sudo snap install --classic go
可能比對過時的和/或第 3 方 PPA 大驚小怪更可取
在最近的 Ubuntu (20.10) 上sudo apt-get install golang
工作正常; 它將安裝 1.14 版。
或者你可以使用這個腳本來安裝 Go 和 LiteIDE?
如果您對所提供的答案不滿意,請發表評論而不是盲目投票。 我在過去的 4 年里一直使用這個設置,沒有任何問題。
您還可以使用 update-golang 腳本:
update-golang是一個腳本,可以以最小的系統入侵輕松獲取和安裝新的 Golang 版本
git clone https://github.com/udhos/update-golang
cd update-golang
sudo ./update-golang.sh
在 Ubuntu 上安裝 Go 的最佳方法是從這里下載所需的版本。 在這里,您可以擁有所有穩定版和發行版,以及存檔版本。
下載您選擇的版本后,您可以按照進一步的步驟進行操作,我建議您為 ubuntu 機器下載 tar.gz 格式:
sudo rm -rf /usr/local/go /usr/local/gocache
這將刪除所有本地 go 代碼庫,但等待更多我們必須做的事情才能從本地完全刪除,我錯過了這一步,花了很長時間才明白我錯過了什么,所以這里是要從中刪除的清除內容清單
sudo apt-get purge golang
要么
sudo apt remove golang-go
tar -C /usr/local -xzf go1.10.8.linux-amd64.tar.gz
GOROOT
變量值,如果未設置,則可以通過go env
檢查該值,然后export PATH=$PATH:/usr/local/go
GOPATH
值,請在/home/yourusername/go/test.php
寫入:package main import "fmt" func main() { fmt.Println("hello world") }
go run test.go
我希望它對你有用!!
這是一個老問題,2022 年已經快 9 年了。 但我認為自動化此安裝很重要。
sudo
。touch ~/go-installer.sh
nano ~/go-installer.sh
#!/bin/bash
## Define version and build
VERSION=1.19
BUILD=4
## Define package name
PKG_NAME='go'
## Define go official url
GO_URL='https://golang.org/dl/'
## Define local path
LOCAL_PATH='/usr/local'
## Define system library path
LIB_PATH='/usr/lib'
## Define system binary path
BIN_PATH='/usr/bin'
## Define EV script filename
EV_FILE='/etc/profile.d/go-bin-path.sh'
## Defile export path command
EXPORT_CMD='export PATH=$PATH:/usr/local/go/bin'
## Define script content
SCRIPT='#!/bin/sh\n'${EXPORT_CMD}
## Define user home dir
USER_HOME_DIR=$(getent passwd ${SUDO_USER:-$USER} | cut -d: -f6)
check_command() {
[ -x "$(command -v $PKG_NAME)" ] && echo 0 || echo 1
}
test_package() {
echo
code=$(check_command)
[ $code -eq 0 ] && go version || echo "Error: $PKG_NAME is not installed." >&2
exit $code
}
is_sudoer() {
## Define error code
E_NOTROOT=87 # Non-root exit error.
## check if is sudoer
if ! $(sudo -l &>/dev/null); then
echo 'Error: root privileges are needed to run this script'
return $E_NOTROOT
fi
return 0
}
if is_sudoer; then
## Remove previous package versions
status="$(dpkg-query -W --showformat='${db:Status-Status}' ${PKG_NAME} 2>&1)"
if [ $? = 0 ] || [ "${status}" = installed ]; then
sudo apt remove --purge --auto-remove -y "${PKG_NAME}"
fi
pkg_path="${LOCAL_PATH}/go"
pkg_lib_path="${LIB_PATH}/go"
## Download the latest version available.
[ "$BUILD" -eq "0" ] && version_build="${VERSION}" || version_build="${VERSION}.${BUILD}"
mkdir "${USER_HOME_DIR}/tmp"
cd "${USER_HOME_DIR}/tmp"
wget "${GO_URL}go${version_build}.linux-amd64.tar.gz"
## Extract and install the downloaded version
if [ -f "go${version_build}.linux-amd64.tar.gz" ]; then
sudo rm -rf "${pkg_path}" && sudo tar -xzvf "go${version_build}.linux-amd64.tar.gz" -C "${LOCAL_PATH}"
## Add symbolic link binary files to system binary and library directories
if [ ! -h "${pkg_lib_path}" ]; then
sudo ln -sv "${pkg_path}" "${pkg_lib_path}"
fi
binaries='go gofmt'
for i in $binaries; do
if [ ! -h "${BIN_PATH}/${i}" ]; then
sudo ln -sv "${pkg_lib_path}/bin/${i}" "${BIN_PATH}/${i}"
fi
done
## Test your new version.
test_package
else
echo "Error: tar file does not exits." >&2
exit 1
fi
else
exit $?
fi
sudo chmod -v u+x ~/go-installer.sh
./go-installer.sh
它會返回這樣的東西:
...
go/test/used.go
go/test/utf.go
go/test/varerr.go
go/test/varinit.go
go/test/winbatch.go
go/test/writebarrier.go
go/test/zerodivide.go
'/usr/lib/go' -> '/usr/local/go'
'/usr/bin/go' -> '/usr/lib/go/bin/go'
'/usr/bin/gofmt' -> '/usr/lib/go/bin/gofmt'
go version go1.19.4 linux/amd64
teocci@ubuntu:~$
go version
現在 Go 將是全球性的,可以在任何地方運行。
如果您有 ubuntu-mate,則可以通過以下方式安裝最新版本:
烏馬克去
我有一個腳本可以從官方網站下載並安裝最后一個
# Change these varialbe to where ever you feel comfortable DOWNLOAD_DIR=${HOME}/Downloads/GoLang INSTALL_DIR=${HOME}/App function install { mkdir -p ${DOWNLOAD_DIR} cd ${DOWNLOAD_DIR} echo "Fetching latest Go version..." typeset VER=`curl -s https://golang.org/dl/ | grep -m 1 -o 'go\\([0-9]\\)\\+\\(\\.[0-9]\\)\\+'` if uname -m | grep 64 > /dev/null; then typeset ARCH=amd64 else typeset ARCH=386 fi typeset FILE=$VER.linux-$ARCH if [[ ! -e ${FILE}.tar.gz ]]; then echo "Downloading '$FILE' ..." wget https://storage.googleapis.com/golang/${FILE}.tar.gz fi echo "Installing ${FILE} ..." tar zxfC ${FILE}.tar.gz ${INSTALL_DIR} echo "Go is installed" } install
設置你的 GOROOT、GOPATH 和 PATH:
export GOROOT=${INSTALL_DIR}/go
export GOPATH=<your go path>
export PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin
您可以使用來自udhos/update-golang
的腳本。
這是一個兩行的示例(以root
身份運行):
bash <(curl -s https://raw.githubusercontent.com/udhos/update-golang/master/update-golang.sh)
ln -vs /usr/local/go/bin/go* /usr/local/bin/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.