簡體   English   中英

如何在 Ubuntu Precise 中安裝當前版本的 Go

[英]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按照以下步驟操作。

分步安裝:

  1. 此處下載最新版本(操作系統:Linux)。
  2. 打開您的終端並轉到您的下載目錄
  3. sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
  4. 添加go您的路徑export PATH=$PATH:/usr/local/go/bin
  5. go version檢查當前安裝的版本
  6. 開始編程。

可能的錯誤 + 修復:(待更新)

如果你得到一個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.ta​​r.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 變量。

這不是一個好的選擇。

  1. 將其更改為/usr/local/go/bin是暫時的,一旦您關閉終端,它就會重置。

  2. go命令只能在您更改 PATH 值的終端中工作。

  3. 您將無法使用任何其他命令,如ls, nano或幾乎所有內容,因為其他所有內容都在/usr/bin或其他位置。 所有這些都將停止工作,它會開始給你錯誤。

但是,這是永久性的,不會干擾其他任何事情。

我使用此說明安裝最新版本的IMG:

  1. 刪除現有的 Go 版本:

     sudo apt-get purge golang*
  2. 安裝最新版本的 Go:

     sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go
  3. 使用以下內容在主路徑中創建.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"
  4. 將 Go 工作區設置為環境變量:

     GOPATH=~/.go
  5. 應用.profile配置:

     source ~/.profile

測試:

$ go version
go version go1.11.1 linux/amd64

參考: Go-GitHub-安裝

對於當前版本的 Go:

Go 編程語言

入門

下載 Go 發行版

下載

單擊上面的鏈接訪問 Go 項目的下載頁面並選擇與您的操作系統和處理器架構相匹配的二進制發行版。

官方二進制發行版可用於 FreeBSD、Linux、macOS 和 Windows 操作系統以及 32 位 (386) 和 64 位 (amd64) x86 處理器架構。

如果二進制發行版不適用於您的操作系統和體系結構的組合,您可能需要嘗試從源代碼安裝或安裝 gccgo 而不是 gc。

從源代碼安裝 Go

如果有人正在尋找安裝 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
  1. 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

  1. 解壓到/usr/local/bin

sudo tar -zxvf go1.6beta1.linux-amd64.tar.gz -C /usr/local/bin/

  1. 設置 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

  1. 核實

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 格式:

  1. 首先,通過執行此操作從本地完全刪除舊版本

sudo rm -rf /usr/local/go /usr/local/gocache

這將刪除所有本地 go 代碼庫,但等待更多我們必須做的事情才能從本地完全刪除,我錯過了這一步,花了很長時間才明白我錯過了什么,所以這里是要從中刪除的清除內容清單

sudo apt-get purge golang

要么

sudo apt remove golang-go
  1. 現在在 /usr/local/go 中安裝/解壓縮你下載的 go 版本,通過點擊終端

tar -C /usr/local -xzf go1.10.8.linux-amd64.tar.gz

  1. 完成上述所有操作后,不要忘記或檢查GOROOT變量值,如果未設置,則可以通過go env檢查該值,然后export PATH=$PATH:/usr/local/go
  2. 最好測試一個小的 go 程序來確定。 如果您沒有更改設置GOPATH值,請在/home/yourusername/go/test.php寫入:
 package main import "fmt" func main() { fmt.Println("hello world") }
  1. 通過go run test.go

我希望它對你有用!!

這是一個老問題,2022 年已經快 9 年了。 但我認為自動化此安裝很重要。

要求:

  • 這在 Ubuntu 18 和 20 上進行了測試。
  • Sudoer 用戶,你必須能夠使用sudo

安裝:

  1. 使用此命令創建一個新文件:
touch ~/go-installer.sh
  1. 使用任何可用的編輯器編輯文件,例如 vi、vim 或 nano。
nano ~/go-installer.sh
  1. 過去這個腳本:
#!/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
  1. 授予文件運行權限:
sudo chmod -v u+x ~/go-installer.sh
  1. 運行腳本:
./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:~$
  1. 測試你的安裝:
go version

現在 Go 將是全球性的,可以在任何地方運行。

  1. 如果您有 ubuntu-mate,則可以通過以下方式安裝最新版本:

    烏馬克去

  2. 我有一個腳本可以從官方網站下載並安裝最后一個

     # 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM