Как установить текущую версию Go в Ubuntu Precise


145

Бегу sudo apt-get install golang-stable, получаю версию Go go1.0.3. Есть ли возможность установить go1.1.1?


1
В итоге пришлось установить из исходников. Не все тесты пройдены, но вроде работает нормально.
София

1
«Не все тесты пройдены, но вроде работает нормально». @sofia какую версию Ubuntu вы используете? Я бы не ожидал сбоев при тестировании, если только вы не использовали очень старую версию Ubuntu или случайно не установили "tip" вместо "stable".
voidlogic 09

Я использую точную убунту. Но установка последней версии из репозитория duh / golang не сообщила о каких-либо проблемах, поэтому не уверен, в чем проблема.
София

Я тоже использую точный. Вы запускали «hg update tip» или «hg update release». Если вы не помните, загляните в свой файл истории bash. Использование подсказки может объяснить ошибки теста.
voidlogic

1
Вы можете попробовать этот блог railskey.wordpress.com/2014/05/31/install-gogolang-on-ubuntu
Правин Мишра

Ответы:


111

Я нашел репо с последними версиями: 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 года у него больше нет последней версии Go. Текущая версия - 1.3. Попробовав это на Ubuntu 12.04, я получил версию 1.1.1.
425nesp

4
Пожалуйста, обновите это. По состоянию на сентябрь 2014 года я также получил «go1.1.2»
Риккардо

2
По состоянию на 24.10.2014 я получил 1.2.1 linux / amd64.
nairware

5
Проверяюсь 29 марта 2015 г. Этот ppa отвечает 404.
btleffler

7
Я использовалppa:evarlast/golang1.4
Натим

98

Мне нравится использовать GVM для управления версиями Go в моем Ubuntu. Довольно прост в использовании, и если вы знакомы с 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 :)
Бренден

2
gvm такое же имя, как и grails gvm
jcalloway

2
Я только что попытался использовать GVM под оболочкой Fish, и предупреждение для тех, кто не использует bash: GVM будет сложно правильно подготовить и запустить. Например, во многих его скриптах нет строки shebang.
Деннис

ссылка на веб-страницу "GVM" https://github.com/moovweb/gvmt404 не найдена. И я не хочу устанавливать что-либо, что, похоже, не имеет собственной процедуры обновления безопасности
nealmcb

Я не согласен с тем, что это так же просто, как "установка gvm" и "использование gvm".
kemicofa ghost

35

Я использовал следующие команды из официального репозитория GoLang , он установил GoLang версии 1.6 на моем Ubuntu 14.04.

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

Ссылка на официальный репозиторий GoLang https://github.com/golang/go/wiki/Ubuntu, похоже, этот ppa всегда будет обновляться в будущем.


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

Из sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go
Ли Ричардсон,

23

[Октябрь 2015] Ответьте, потому что текущий принятый ответ 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 печатает версию xgcc, но не устанавливает версию


у этого нет armv7
Варун

17

я установил из исходников. здесь есть пошаговое руководство: http://golang.org/doc/install/source


2
да. Установка Go из исходников - лучший способ "Go". Так тоже очень легко обновить.
voidlogic 09

1
Я следовал инструкциям здесь, и это сработало для меня, действительно хорошо golang.org/doc/install#tarball
Богдан

1
Огромное спасибо. Я все еще работаю над Ubuntu 14.04, а PPA - нет. :-)
Ionică Bizău 02

1
Это раздражает сейчас, когда вам нужно загружать 1.5+ со сборкой 1.4+.
jocull 02

7

Вот самый прямой и простой способ, который я нашел для установки на Ubuntu 14.04 без какого-либо ppa или любого другого инструмента.

На данный момент версия GO - 1.7.

Получите Go 1.7.tar.gz с помощью wget

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} для вашего собственного кода проекта
Скотт Стенсленд,

Да, я использую VSCode, поэтому для добавления GOPATH мне просто нужно отредактировать gopath в пользовательских настройках json. Спасибо за вклад.
Ishan Jain

В команде tar есть небольшая опечатка: am64 вместо amd64
Адриан Лунгу

1
@AdrianLungu Исправил.
Ishan Jain

1
sudo nano ~. / bashrc -> sudo nano ~ / .bashrc .. тоже должно быть vim: p
GameKyuubi 06

5

Если кто-то хочет установить Go 1.8, сделайте следующее:

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

А затем установите go

sudo apt-get install golang-1.8-go

У меня работает безупречно. Благодарность!
Llewelyn

1
golang-1.8-goУстанавливать не нужно , он уже установлен при установке golang-go. Фактически по состоянию на конец апреля 2017 года установлена ​​последняя версия go 1.8.1 . github.com/golang/go/wiki/Ubuntu
firepol

Думаю, вам также необходимо настроить 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

5

Для текущей версии Go:

Язык программирования Go

Начиная

Скачать дистрибутив Go

Загрузки

Щелкните ссылку выше, чтобы перейти на страницу загрузок проекта Go и выбрать двоичный дистрибутив, соответствующий вашей операционной системе и архитектуре процессора.

Официальные двоичные дистрибутивы доступны для операционных систем FreeBSD, Linux, macOS и Windows, а также для 32-битных (386) и 64-битных (amd64) процессорных архитектур x86.

Если двоичный дистрибутив недоступен для вашей комбинации операционной системы и архитектуры, вы можете попробовать установить из исходников или установить gccgo вместо gc.

Установка Go из исходников


Установка из исходников действительно очень быстрая. Он компилируется быстро, и тесты необязательны, если вы решите их пропустить.
Джереми Уолл

4
  1. Скачайте, скажем, go1.6beta1.linux-amd64.tar.gzс https://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. un-tar в /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, появляется 1.4.2. Есть ли другие действия, которые нужно сделать?
Анаит Серобян

4

Я использую эту инструкцию для установки последней версии 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-Installation


1

В наши дни, согласно golang github для Ubuntu , можно легко установить последнюю версию 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

Лучший способ установить Go на Ubuntu - загрузить необходимую версию отсюда. . Здесь у вас могут быть все стабильные и выпуски, а также архивные версии.

После загрузки выбранной версии вы можете выполнить дальнейшие шаги, я предлагаю вам загрузить формат tar.gz для машины ubuntu:

  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, нажав на терминал с этим

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, вы можете установить последнюю версию:

    umake go

  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/
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.