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

Running sudo apt-get install golang-stable, I get Go version go1.0.3. Is there any way to install go1.1.1?

转载于:https://stackoverflow.com/questions/17480044/how-to-install-the-current-version-of-go-in-ubuntu-precise

I found a repo that has the latest versions: https://launchpad.net/~duh/+archive/golang/+packages. So basically do:

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

To confirm:

go version

which outputs in my case (Ubuntu precise)

go version go1.1.1 linux/amd64

From there just export the settings you're gonna need to bash_rc or equivalent:

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

For the current release of Go:

The Go Programming Language

Getting Started

Download the Go distribution

Downloads

Click the link above to visit the Go project's downloads page and select the binary distribution that matches your operating system and processor architecture.

Official binary distributions are available for the FreeBSD, Linux, Mac OS X (Snow Leopard, Lion, and Mountain Lion), NetBSD, and Windows operating systems and the 32-bit (386) and 64-bit (amd64) x86 processor architectures.

If a binary distribution is not available for your combination of operating system and architecture you may want to try installing from source or installing gccgo instead of gc.

Installing Go from source

i installed from source. there is a step-by-step tutorial here: http://golang.org/doc/install/source

I like to use GVM for managing my Go versions in my Ubuntu box. Pretty simple to use, and if you're familiar with RVM, it's a nobrainer. It allows you to have multiple versions of Go installed in your system and switch between whichever version you want at any point in time.

Install GVM with:

sudo apt-get install bison mercurial
bash < <(curl -LSs 'https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer')
. "$HOME/.gvm/scripts/gvm"

and then it's as easy as doing this:

gvm install go1.1.1
gvm use go1.1.1 --default

The default flag at the end of the second command will set go1.1.1 to be your default Go version whenever you start a new terminal session.

[October 2015] Answer because the current accepted answersudo apt-get install golang isn't uptodate and if you don't want to install GVM follow these steps.

Step by step installation:

  1. Download the latest version here (OS: Linux).
  2. Open your terminal and go to your Downloads directory
  3. sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
  4. Add go to your path export PATH=$PATH:/usr/local/go/bin
  5. go version to check the current version installed
  6. Start programming.

Possible errors + fixes: (to be updated)

If you get a go version xgcc (Ubuntu 4.9.1-0ubuntu1) 4.9.1 linux/amd64 then you did something wrong, so check out this post: Go is printing xgcc version but not go installed version

  1. Download say, go1.6beta1.linux-amd64.tar.gz from https://golang.org/dl/ into /tmp

wget https://storage.googleapis.com/golang/go1.6beta1.linux-amd64.tar.gz -o /tmp/go1.6beta1.linux-amd64.tar.gz

  1. un-tar into /usr/local/bin

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

  1. Set GOROOT, GOPATH, [on ubuntu add following to ~/.bashrc]

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

  1. Verify

go version should show be

go version go1.6beta1 linux/amd64

go env should show be

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"

I used following commands from GoLang official repository, it installed GoLang version 1.6 on my Ubuntu 14.04

sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable
sudo apt-get update
sudo apt-get install golang

Reference official GoLang Repo https://github.com/golang/go/wiki/Ubuntu it seems this ppa will always be updated in future.

Or maybe you could use this script to install Go and LiteIDE?

  1. If you have ubuntu-mate, you can install latest go by:

    umake go

  2. I have a script to download and install the last go from official website

     # 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
    

Setup your GOROOT, GOPATH and PATH:

export GOROOT=${INSTALL_DIR}/go
export GOPATH=<your go path>
export PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin

Here is the most straight forward and simple method I found to install go on Ubuntu 14.04 without any ppa or any other tool.

As of now, The version of GO is 1.7

Get the Go 1.7.tar.gz using wget

wget https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz

Extract it and copy it to /usr/local/

sudo tar -C /usr/local -xvf go1.7.linux-amd64.tar.gz

You have now successfully installed GO. Now You have to set Environment Variables so you can use the go command from anywhere.

To achieve this we need to add a line to .bashrc So,

sudo nano ~/.bashrc

and add the following line to the end of file.

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

Now, All the commands in go/bin will work.

Check if the install was successful by doing

go version

For offline Documentation you can do

godoc -http=:6060

Offline documentation will be available at http://localhost:6060

NOTE:

Some people here are suggesting to change the PATH variable.

It is not a good choice.

  1. Changing that to /usr/local/go/bin is temporary and it'll reset once you close terminal.

  2. go command will only work in terminal in which you changed the value of PATH.

  3. You'll not be able to use any other command like ls, nano or just about everything because everything else is in /usr/bin or in other locations. All those things will stop working and it'll start giving you error.

However, this is permanent and does not disturbs anything else.

If someone is looking for installing Go 1.8 the follow this:

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go

And then install go

sudo apt-get install golang-1.8-go

You can also use the update-golang script:

update-golang is a script to easily fetch and install new Golang releases with minimum system intrusion

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

You can use a script from udhos/update-golang.

Here is a two-liner as example (run as 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/

Here is a demo:

asciicast