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

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

20 ответов

Решение

Я нашел репозиторий с последними версиями: 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

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

[Октябрь 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, но не устанавливает версию

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

Я использую эту инструкцию для установки последней версии 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 на 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 -xvf go1.7.linux-amd64.tar.gz

Вы успешно установили GO. Теперь вы должны установить переменные среды, чтобы вы могли использовать go команда из любого места.

Для этого нам нужно добавить строку в .bashrcТак,

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 или в других местах. Все эти вещи перестанут работать, и это начнет давать вам ошибку.

Тем не менее, это постоянно и не мешает ничему другому.

Если кто-то ищет установку 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

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

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

Начиная

Загрузите дистрибутив Go

Загрузки

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

Официальные бинарные дистрибутивы доступны для операционных систем FreeBSD, Linux, Mac OS X (Snow Leopard, Lion и Mountain Lion), NetBSD и Windows, а также 32-битных (386) и 64-битных (amd64) процессорных архитектур x86.

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

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

  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. распаковать в /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 для Ubuntu, можно легко установить последнюю версию Go с помощью оснастки:

Также неплохо работает использование снимков:

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

Потенциально предпочтительнее возиться с устаревшими и / или сторонними PPA

В недавней Ubuntu (20.10) sudo apt-get install golangработает отлично; он установит версию 1.14.

Или, может быть, вы могли бы использовать этот скрипт для установки Go и LiteIDE?

Вы также можете использовать скрипт update-golang:

update-golang - это скрипт для простой загрузки и установки новых версий Golang с минимальным вмешательством в систему.

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

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

После приведенных выше команд и настройки среды go. Вы попытались запустить программу go, она покажет вамgo: no such tool "compile"если вы столкнулись с тем же, перейдите по ссылке нижеhttps://stackoverflow.com/a/76550511/22128545

Это старый вопрос, в 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 станет глобальным и сможет работать где угодно.

Перейдите на сайт https://go.dev/doc/install . Нажмите кнопку «Загрузить 1.21.3» (любую последнюю версию, которую вы хотите установить). Загрузите версию, используя ссылку go1.21.3.linux-amd64.tar.gz. Типsudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gzУстановите переменные среды

      export GOROOT=/usr/local/go
export GOPATH=${HOME%}/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export PATH = $PATH:$HOME

Теперь введитеgo versionвы получите свою версию Go

Лучший способ установить 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. Теперь установите / распакуйте загруженную версию go внутри / 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

Я надеюсь, что это работает для вас!

Вы можете использовать скрипт из 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/

Вот демо:

https://a sciinema.org/a/INSenxRRfgfC9TgO1jq9zVk8a

  1. Если у вас есть Ubuntu-Mate, вы можете установить последнюю версию 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
Другие вопросы по тегам