在Ubuntu上更新golang


30

我有Ubuntu 14.4.03。golang随附的默认版本是1.2.1。我想更新golang到1.4或更高版本。

搜索后,我发现执行此操作的方法是先删除当前的go安装,然后重新安装新版本。

我在以下目录中找到了以下go安装文件:

/usr/share/go
/usr/share/go/src/cmd/go
/usr/share/go/src/pkg/go
/usr/lib/go
/ur/lib/go/pkg/linux_amd64/go
/ur/lib/go/pkg/linux_amd64_race/go
/usr/bin/go

哪个目录包含什么?我应该删除哪些?新安装的位置应该在哪里?看来/ usr / local更正常。那么Ubuntu的默认默认值是多少呢?

安装新版本的Golang的程序是什么?

谢谢。


Answers:


8

首先,golang使用此命令删除当前安装,您无需手动删除由安装的文件apt-get

sudo apt-get purge golang

为了方便安装,golang 1.4您可以使用此PPA

sudo add-apt-repository ppa:evarlast/golang1.4
sudo apt-get update

现在您可以使用

sudo apt-get install golang

这将安装1.4版,这是 PPA 的链接


由于删除了ppa,因此现在无法正常工作。下一个答案正在起作用
Himanshu sharma

45

ppa:evarlast/golang1.4对我不起作用。下面是安装Go的手动方法。

步骤1:移除现有的golang

sudo apt-get purge golang*

步骤2:从官方网站下载最新版本。点击这里

步骤3:使用以下命令将其解压缩到/ usr / local中。我在这里使用Go 1.11.4。您可能需要根据下载的版本将文件名替换为实际的文件名。

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

步骤4:在主目录中创建.go目录。(无需管理员权限即可轻松安装必要的软件包)

mkdir ~/.go

步骤5:设置以下环境变量

GOROOT=/usr/local/go
GOPATH=~/.go
PATH=$PATH:$GOROOT/bin:$GOPATH/bin

检查此AskUbuntu答案,了解如何永久设置环境变量

步骤6:更新go命令

sudo update-alternatives --install "/usr/bin/go" "go" "/usr/local/go/bin/go" 0
sudo update-alternatives --set go /usr/local/go/bin/go

步骤7:测试golang版本

go version

我真的很喜欢这个答案,因为它很好地描述了Debian Alternatives System的工作原理!+1
fgbreel

这对于我从1.8升级到1.9无效。官方指南也没有在这里github.com/golang/go/wiki/Ubuntu
Karlom,

这是正确的解决方案,只是tar命令无效,仅提供tar文件的全名就可以了。谢谢!
蒙塔罗

传说。非常感谢你!但是,更改tar命令行的文件名。
Mihailo

像魅力一样工作,欢呼!
PKumar

10

找到具有最新版本的替代(/个人)回购,该回购仍然有效,然后安装了go-1.8并将其从OP的问题路径中进行了链接。在这里砸它:

sudo add-apt-repository ppa:gophers/archive
sudo apt-get update

sudo apt-get install golang-1.8

sudo ln /usr/lib/go-1.8/bin/go /usr/bin/go1.8

现在,我只能说go1.8而不是说go最新的最好的。

该仓库提供了许多其他版本,因此您只需将版本号更改为ex。1.4在上面的脚本/命令中。


8

对于Ubuntu 17.04 Zesty到17.10 Artful上的Golang 1.8:

# sudo apt update
# sudo apt install golang-1.8 golang-1.8-doc
# for bin in /usr/lib/go-1.8/bin/* ; do
    sudo update-alternatives --install /usr/bin/$(basename $bin) $(basename $bin) $bin 0
    sudo update-alternatives --set $(basename $bin) $bin
  done

对于Ubuntu 17.10 Artful到18.04 Bionic上的Golang 1.9:

# sudo apt update
# sudo apt install golang-1.9 golang-1.9-doc
# for bin in /usr/lib/go-1.9/bin/* ; do
    sudo update-alternatives --install /usr/bin/$(basename $bin) $(basename $bin) $bin 0
    sudo update-alternatives --set $(basename $bin) $bin
  done

对于Ubuntu 18.04 Bionic和18.10 Cosmic上的Golang 1.10:

# sudo apt update
# sudo apt install golang-1.10 golang-1.10-doc
# for bin in /usr/lib/go-1.10/bin/* ; do
    sudo update-alternatives --install /usr/bin/$(basename $bin) $(basename $bin) $bin 0
    sudo update-alternatives --set $(basename $bin) $bin
  done

3

易于安装和更新

使用Go Version Manager

# Add basic packages
sudo apt-get install curl git mercurial make binutils bison gcc build-essential

# Install GVM
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

# Install which version you want to install
gvm install go1.9

# Use it as default version
gvm use go1.9 --default

3

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

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

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

3

IMG:  要在当前所有受支持的Ubuntu版本中安装最新版本的Go编程语言,请打开终端并输入:

sudo snap install go --classic --channel stable 

该快照为Go编程语言提供了汇编程序,编译器,链接器和已编译的库。除了稳定版之外,还有其他渠道,但是稳定版渠道是Go编程语言的最新版本。可用更新时,go snap软件包将自动更新。


0

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

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.