如何在Ubuntu Precise中安装当前版本的Go


141

运行sudo apt-get install golang-stable,我得到Go版本go1.0.3。有什么安装方法go1.1.1吗?


1
最后,我必须从源代码安装。并非所有测试都通过了,但似乎工作正常。
索非亚

1
“并不是所有的测试都通过了,但是似乎还可以。” @sofia您正在使用哪个版本的Ubuntu?除非您运行的是非常旧的Ubuntu版本,或者不小心安装了“ tip”和“ stable”,否则我不会期望测试失败。
voidlogic

我正在使用ubuntu precision。但是从repo duh / golang安装最新版本并没有报告任何问题,因此不确定是什么问题。
索非亚

我也使用精确。您是否运行了“ hg更新提示”或“ hg更新发布”。如果您不记得,请回顾您的bash历史记录文件。使用技巧可能会解释测试失败。
voidlogic

Answers:


110

我找到了具有最新版本的仓库:https : //launchpad.net/~duh/+archive/golang/+packages。所以基本上可以这样做:

sudo apt-get install python-software-properties  # 12.04
sudo add-apt-repository ppa:duh/golang
sudo apt-get update
sudo apt-get install golang

确认:

go version

以我的情况输出(Ubuntu精确)

go version go1.1.1 linux/amd64

从那里仅导出您将需要的设置bash_rc或同等功能:

export GOROOT=/usr/lib/go
export GOBIN=/usr/bin/go

39
因此,自2014年7月起,它不再具有最新版本的Go。当前版本是1.3。在Ubuntu 12.04上尝试之后,我最终获得了1.1.1版本。
425nesp

4
请更新此。截至2014年9月,我最终也获得了“ go1.1.2”
Riccardo

2
截至2014-10-24,我获得了1.2.1 linux / amd64。
nairware 2014年

5
检查在3月29日,2015年即有404 PPA响应
btleffler

7
我用过ppa:evarlast/golang1.4
Natim

98

我喜欢使用GVM在Ubuntu盒子中管理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版本。


1
我喜欢RVM,并且始终喜欢工具包中的好工具。很高兴看到我进入Go,发现有一个类似GVM的工具:)
Brenden

2
gvm与grails gvm的名称相同
jcalloway 2014年

2
我只是尝试在鱼壳下使用GVM,并警告那些不使用bash的人:GVM很难正常启动和运行。例如,它的许多脚本没有shebang行。
丹尼斯

https://github.com/moovweb/gvmt找不到引用的“ GVM”网页404。而且我不愿意安装似乎没有自己的安全更新程序的任何东西
nealmcb

我不同意它像“ gvm安装”和“ gvm使用”一样容易。
kemicofa ghost

35

我使用了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 将来总是会更新。


2
The team named '~ubuntu-lxc' has no PPA named 'ubuntu/lxd-stable'
kenorb

从引用的链接:sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go
李·理查森

23

[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. 开始编程。

可能的错误和修复:(待更新)

如果得到a,go version xgcc (Ubuntu 4.9.1-0ubuntu1) 4.9.1 linux/amd64则说明您做错了什么,所以请查看此帖子:Go正在打印xgcc版本,但未打印已安装版本


这没有armv7
Varun


7

这是我发现在没有任何ppa或任何其他工具的Ubuntu 14.04上安装的最简单直接的方法。

截至目前,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 So 添加一行,

sudo nano ~/.bashrc

并将以下行添加到文件末尾。

export PATH="/usr/local/go/bin:$PATH"

现在,所有命令都go/bin将起作用。

通过执行以下操作检查安装是否成功

go version

对于离线文档,您可以执行

godoc -http=:6060

离线文档将在以下位置提供 http://localhost:6060

注意:

这里有人建议更改PATH变量。

这不是一个好选择。

  1. 将其更改/usr/local/go/bin为临时选项,一旦关闭终端,它将重置。

  2. go 该命令仅在更改了PATH值的终端中有效。

  3. 您将无法使用任何类似ls, nano或几乎所有其他命令的命令,因为其他所有命令都/usr/bin在其他位置或其他位置。所有这些事情都会停止工作,并且会开始给您带来错误。

但是,这是永久性的,不会干扰其他任何内容。


您需要为自己的项目代码定义env var GOPATH = / some / dir,然后定义PATH = $ {GOPATH} / bin:$ {PATH}
Scott Stensland,2016年

是的,我使用VSCode,所以要添加GOPATH,我只需要在用户设置json中编辑gopath。感谢您的输入。
Ishan Jain

tar命令中有一个小错字:am64而不是amd64
Adrian Lungu

1
@AdrianLungu修复了它。
伊桑·in那

1
sudo
nano〜

4
  1. go1.6beta1.linux-amd64.tar.gzhttps://golang.org/dl/下载“说” 到/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"


嗨,谢谢您的回答,我正在按照所有步骤进行操作,但是每当我将“ go version”(而不是1.7)称为“ go version”时,它都会带来1.4.2。还有其他应采取的措施吗?
Anahit Serobyan

4

如果有人要安装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

对我来说完美无缺。谢谢!
Gwyneth Llewelyn

1
无需安装golang-1.8-go,安装时已安装golang-go。实际上,截至2017年4月,已安装最新版本go 1.8.1github.com/golang/go/wiki/Ubuntu
firepol '17

我想您还需要设置GOROOT,GOPATH
Nam G VU

在其他答案中正确设置GOROOT和GOPATH的参考1)stackoverflow.com/a/34384978/248616 2)stackoverflow.com/questions/17480044/… 更多官方参考stackoverflow.com/a/10847122/248616
Nam G VU

对于我们的每个Go项目,设置GOPATH = / some / dir,PATH = $ {GOPATH} / bin:$ {PATH}
Nam G VU

4

对于Go的当前版本:

Go编程语言

入门

下载Go发行版

资料下载

单击上面的链接访问Go项目的下载页面,然后选择与您的操作系统和处理器体系结构匹配的二进制发行版。

官方二进制发行版适用于FreeBSD,Linux,macOS和Windows操作系统以及32位(386)和64位(amd64)x86处理器体系结构。

如果二进制发行版不适用于您的操作系统和体系结构的组合,则可能要尝试从源代码安装或安装gccgo而不是gc。

从源安装Go


从源代码安装实际上确实非常快。它编译速度快,如果您选择跳过测试,则这些测试是可选的。
杰里米·沃尔

3

我使用此说明安装最新版本的 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-安装


1

如今,根据用于Ubuntugolang github说法,可以通过一个快捷方式轻松安装最新版本的Go:

使用快照也可以很好地工作:

# This will give you the latest version of go
$ sudo snap install --classic go

可能比烦恼过时和/或第三方PPA更可取


0

您还可以使用update-golang脚本:

update-golang是一个脚本,可以轻松地获取和安装新的Golang版本,并减少系统入侵

git clone https://github.com/udhos/update-golang
cd update-golang
sudo ./update-golang.sh

0

在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程序来确保。/home/yourusername/go/test.php如果您未更改设置GOPATH值,请在其中写入:
package main

import "fmt"

func main() {
    fmt.Println("hello world")
}
  1. 运行这个 go run test.go

我希望这个对你有用!!


0

或者,也许您可​​以使用此脚本来安装Go和LiteIDE?

如果您对所提供的答案不满意,请发表评论,不要盲目地投票。我在过去4年中一直使用此设置,没有任何问题。


-1
  1. 如果您有ubuntu-mate,则可以安装最新的go by:

    umake去

  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

-1

您可以使用中的脚本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/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.