Вопрос или проблема
У меня 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?
Спасибо.
ppa:evarlast/golang1.4
не работает для меня. Ниже приведен ручной способ установки Go.
Для более подробных инструкций по установке: Установите последнюю версию Golang на Linux.
Шаг 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
Проверьте эту ссылку, чтобы установить переменные среды постоянно.
Шаг 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
Сначала удалите вашу текущую установку 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.
Я нашел альтернативный(/личный) репозиторий с последними версиями, который все еще активен, затем я установил go-1.8 и добавил его в путь из вопроса. Вот bash-скрипт:
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
и использовать последнюю версию.
Репозиторий предлагает много других версий, так что вы можете просто изменить номер версии в скрипте/командах выше, например, на 1.4
.
Чтобы установить последнюю версию языка программирования Go во всех поддерживаемых версиях Ubuntu, откройте терминал и введите:
sudo snap install go --classic --channel stable
Возможно, вам понадобится установить поддержку snapd, так как она не установлена по умолчанию на серверных установках.
sudo apt install snapd && sudo reboot
Этот snap предоставляет ассемблер, компилятор, линкер и скомпилированные библиотеки для языка программирования Go. Существуют и другие каналы, кроме стабильного, но стабильный канал содержит последнюю версию языка программирования Go. Пакет go snap будет обновляться автоматически, когда будут доступны обновления.
Для Golang 1.8 на Ubuntu 17.04 Zesty до 17.10 Artful:
# 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
Для Golang 1.9 на Ubuntu 17.10 Artful до 18.04 Bionic:
# 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
Для Golang 1.10 на Ubuntu 18.04 Bionic и 18.10 Cosmic:
# 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
Вы также можете использовать скрипт update-golang:
update-golang — это скрипт для легкого получения и установки новых выпусков Golang с минимальным вмешательством в систему
git clone https://github.com/udhos/update-golang
cd update-golang
sudo ./update-golang.sh
Легкая установка и обновление
Используйте Go Version Manager
# Добавьте основные пакеты
sudo apt-get install curl git mercurial make binutils bison gcc build-essential
# Установите GVM
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# Установите версию, которую хотите
gvm install go1.9
# Используйте её как версию по умолчанию
gvm use go1.9 --default
Удалите существующий golang
sudo apt-get purge golang*
Установите snap, если еще не установлен
sudo apt update
sudo apt install snapd
Установите через snap
sudo snap install go --classic
Я использую этот скрипт для автоматизации обновлений Golang:
Узнайте последнюю версию отсюда: https://golang.org/dl/
sudo apt-get purge golang* # на случай, если установлена старая версия go
tar_name="go1.15.8.linux-amd64.tar.gz" # получите последнюю версию с https://golang.org/dl/
wget https://golang.org/dl/$tar_name
tar -xvf $tar_name
rm -f $tar_name
sudo rm -rf /usr/local/go
sudo mv go /usr/local
# Добавьте следующие строки в `.bashrc` или `.zshrc`
mkdir -p $HOME/go
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Я использую эту инструкцию, чтобы установить последнюю версию
-
Удалите существующую версию Go:
sudo apt-get purge golang*
-
Установите последнюю версию Go:
sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go
-
Создайте файл
.profile
в домашней директории со следующим содержанием:# ~/.profile: выполняется интерпретатором для входных оболочек. # Этот файл не читается bash(1), если существуют ~/.bash_profile или ~/.bash_login. # смотрите /usr/share/doc/bash/examples/startup-files для примеров. # файлы находятся в пакете bash-doc. # умолчание umask устанавливается в /etc/profile; для установки umask # для входа по ssh, установите и настройте пакет libpam-umask. #umask 022 # если используется bash if [ -n "$BASH_VERSION" ]; then # включите .bashrc, если существует if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # установите PATH, чтобы он включал личные каталоги бинарных файлов пользователя PATH="$HOME/bin:$HOME/.local/bin:$PATH"
-
Установите рабочее пространство Go как переменную окружения:
GOPATH=~/.go
-
Примените конфигурацию
.profile
:source ~/.profile
Тест:
$ go version
go version go1.11.1 linux/amd64
Ссылка: Go-GitHub-Installation
Согласно официальной документации.
- Сначала удалите предыдущую версию Golang с помощью
sudo rm -rf /usr/local/go
./usr/local/go
— это местоположение по умолчанию, но если вы не уверены, проверьте с помощьюwhich go
. - Скачайте бинарный файл с здесь, затем извлеките архив, который вы только что скачали, в
/usr/local
, выполнив командуsudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
. Убедитесь, что вы выполняете эту команду там, где вы только что скачали tar-файл. - Проверьте новую версию с помощью
go version
.
.
Ответ или решение
Обновление Golang на Ubuntu: Подробное руководство
Чтобы обновить Golang на вашей системе Ubuntu с версии 1.2.1 до более новой, например 1.4 или выше, важно понять, как правильно удалить текущую версию и установить новую. Давайте разберемся в процессе шаг за шагом.
Теория
Обновление Golang обычно требует удаления старой версии перед установкой новой. Это связано с тем, что Golang распространяется в виде двоичной сборки, и установка новой версии в ту же директорию, где уже имеется старая, может привести к конфликтам. Важные компоненты Golang на вашей системе обычно находятся в директориях, таких как /usr/share/go
и /usr/lib/go
. Путь установки по умолчанию для всех системных приложений на Ubuntu, как правило, /usr
, но для сторонних приложений, таких как Golang, обычно рекомендуется /usr/local
.
Пример
Давайте рассмотрим, как безопасно удалить и установить более новую версию Golang.
- Удаление старой версии Golang
Удалите все связанные файлы Golang с помощью команды:
sudo apt-get purge golang*
- Скачивание последней версии Golang
Перейдите на официальный сайт Golang по ссылке и скачайте последнюю версию. Например, для версии 1.11.4:
wget https://golang.org/dl/go1.11.4.linux-amd64.tar.gz
- Установка новой версии
Распакуйте скачанный архив в директорию /usr/local
:
sudo tar -C /usr/local -xzf go1.11.4.linux-amd64.tar.gz
- Настройка среды
Создайте директорию для вашего рабочего пространства Go:
mkdir ~/.go
Добавьте следующие переменные окружения в ваш файл .profile
или .bashrc
:
export GOROOT=/usr/local/go
export GOPATH=~/.go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Примените изменения:
source ~/.profile
- Обновление команды go
Обновите символьные ссылки для команды 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
- Проверка установки
Убедитесь, что Golang установлен корректно, выполнив команду:
go version
Она должна отобразить версию, которую вы только что устанавливали.
Применение
Установив Golang, вы теперь готовы разрабатывать и запускать приложения, используя новейшую версию языка. Рекомендации по использованию новых функций и возможностей языка можно найти в официальной документации Golang. Регулярно обновляйте Golang, чтобы воспользоваться всеми улучшениями производительности и безопасности.
Надеюсь, это руководство окажется полезным для успешного обновления и настройки Golang на вашей системе Ubuntu.