繁体   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