Установите Golang в Linux с помощью скрипта Update-golang
Установка языка программирования Go в Linux не составляет большого труда. Установка и настройка языка Go займет всего несколько минут. Хорошо, что теперь установить Golang в Linux с помощью скрипта Update-golang стало еще проще.
Что такое Обновление-Голанг?
Update-golang — это сценарий оболочки, позволяющий легко загружать и устанавливать последние версии Golang с минимальным вмешательством пользователя. Теперь любой может легко установить стабильную версию Go на свой компьютер с Linux с помощью этого скрипта. Все автоматизировано! Просто запустите этот скрипт и расслабьтесь. Этот скрипт сделает следующее:
- Сначала скрипт Update-golang выполнит поиск последнего доступного двоичного файла Golang на странице истории выпусков Golang.
- Затем он найдет версию и архитектуру ОС вашей системы Linux и загрузит соответствующий двоичный файл. Загруженные файлы будут храниться в каталоге
/usr/local
. Вы можете удалить их после установки Go. - После загрузки правильного двоичного файла Go он устанавливается в папку
/usr/local/go
. - Затем путь
/usr/local/go/bin
добавляется в ваш` PATH
. - Затем он установит путь GOROOT.
- Наконец, он проверит установку Golang, запустив программу
hello world
.
Этот скрипт предназначен не только для новой установки, вы также можете использовать его для обновления текущей установленной версии Go до следующей доступной версии!
Установите Golang в Linux с помощью скрипта Update-golang.
Загрузите скрипт Update-golang, клонировав его репозиторий с GitHub:
git clone https://github.com/udhos/update-golang
Приведенная выше команда клонирует содержимое официального репозитория update-golang в локальный каталог с именем update-golang
. Перейдите в этот каталог:
cd update-golang
Всегда рекомендуется проверять целостность скрипта, скачанного из Интернета. Итак, давайте сделаем это, проверив значение CHECKSUM скрипта update-golang:
wget -qO hash.txt https://raw.githubusercontent.com/udhos/update-golang/master/update-golang.sh.sha256
sha256sum -c hash.txt
Если вы получите результат «ОК», все готово.
update-golang.sh: OK
После проверки контрольной суммы выполните следующую команду, чтобы установить последнюю версию Golang на ваш компьютер с Linux:
sudo ./update-golang.sh
Пример вывода:
update-golang.sh: version 0.24
update-golang.sh: find_latest: found last release: 1.16.2
update-golang.sh: user: uid=0(root) gid=0(root) groups=0(root)
update-golang.sh: RELEASE_LIST=https://golang.org/dl/
update-golang.sh: SOURCE=https://storage.googleapis.com/golang
update-golang.sh: DESTINATION=/usr/local
update-golang.sh: RELEASE=1.16.2
update-golang.sh: OS=linux
update-golang.sh: ARCH_PROBE=uname -m
update-golang.sh: ARCH=amd64
update-golang.sh: PROFILED=/etc/profile.d/golang_path.sh
update-golang.sh: CACHE=/usr/local
update-golang.sh: GOPATH=
update-golang.sh: DEBUG=
update-golang.sh:
update-golang.sh: will install golang go1.16.2.linux-amd64 as: /usr/local/go
update-golang.sh: https://storage.googleapis.com/golang/go1.16.2.linux-amd64.tar.gz is remote
--2021-03-30 06:02:35-- https://storage.googleapis.com/golang/go1.16.2.linux-amd64.tar.gz
Resolving storage.googleapis.com (storage.googleapis.com)... 2404:6800:4009:81f::2010, 2404:6800:4009:820::2010, 2404:6800:4009:81d::2010, ...
Connecting to storage.googleapis.com (storage.googleapis.com)|2404:6800:4009:81f::2010|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 129010536 (123M) [application/octet-stream]
Saving to: ‘/usr/local/go1.16.2.linux-amd64.tar.gz’
/usr/local/go1.16.2.linux-amd64.t 100%[=============================================================>] 123.03M 501KB/s in 5m 2s
2021-03-30 06:07:40 (417 KB/s) - ‘/usr/local/go1.16.2.linux-amd64.tar.gz’ saved [129010536/129010536]
update-golang.sh: remove_old_link: not found symlink for old install
update-golang.sh: untar: tar -x -f /usr/local/go1.16.2.linux-amd64.tar.gz
update-golang.sh: profile_path_add: issuing new /usr/local/go/bin to /etc/profile.d/golang_path.sh
update-golang.sh: profile_path_add: issuing $HOME/go/bin to /etc/profile.d/golang_path.sh
update-golang.sh: golang go1.16.2.linux-amd64 installed at: /usr/local/go
update-golang.sh: testing: /usr/local/go/bin/go version
update-golang.sh: unsudo: running_as_root:ostechnix: /usr/local/go/bin/go version
update-golang.sh: go version go1.16.2 linux/amd64
update-golang.sh: /usr/local/go/bin/go version: SUCCESS
update-golang.sh: unsudo: running_as_root:ostechnix: mktemp -t hello-tmpXXXXXXXX
update-golang.sh: unsudo: running_as_root:ostechnix: tee /tmp/hello-tmpqGBVcjhy.go
update-golang.sh: testing: /usr/local/go/bin/go run /tmp/hello-tmpqGBVcjhy.go
update-golang.sh: unsudo: running_as_root:ostechnix: /usr/local/go/bin/go run /tmp/hello-tmpqGBVcjhy.go
update-golang.sh: hello, world
update-golang.sh: /usr/local/go/bin/go run /tmp/hello-tmpqGBVcjhy.go: SUCCESS
update-golang.sh: running_as_root: yes
update-golang.sh: recursively forcing build cache [/home/ostechnix/.cache/go-build] ownership to 1000:1000
Установите Golang в Linux с помощью скрипта Update-golang
Проверьте версию Golang и информацию об среде
Чтобы проверить установленную версию Go, запустите:
go version
go version go1.16.2 linux/amd64
Как видите, скрипт Update-golang установил Go версии 1.16.2. Это последняя стабильная версия Go на момент написания этого руководства.
Чтобы распечатать информацию о среде Go, запустите:
go env
Пример вывода:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/ostechnix/.cache/go-build"
GOENV="/home/ostechnix/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/ostechnix/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/ostechnix/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.16.2"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build883237217=/tmp/go-build -gno-record-gcc-switches"
Установите бета-версию Golang или версию-кандидат (RC)
По умолчанию скрипт Update-golang установит последнюю стабильную версию. Если вы хотите установить какие-либо бета-версии или версии-кандидаты на выпуск, явно укажите версию, как показано ниже:
Установите бета-версию Голанга:
sudo RELEASE=1.9beta1 ./update-golang.sh
Установить кандидата на выпуск (RC):
sudo RELEASE=1.11rc1 ./update-golang.sh
Установка Golang для каждого пользователя
По умолчанию скрипт Update-golang устанавливает Golang для всей системы. Если вы хотите установить Golang для текущего пользователя, просто создайте каталог установки, например ~/golang
:
mkdir ~/golang
А затем установите GO с помощью команды:
DESTINATION=~/golang PROFILED=~/.profile ./update-golang.sh
Обратите внимание, что для индивидуальной установки не требуются разрешения root
или sudo
.
Запретить кэширование загруженных файлов
Как упоминалось ранее, скрипт Update-golang сохранит загруженные архивы в каталоге /usr/local
. Если вы не хотите кэшировать файлы архива, просто используйте опцию -declutter
:
sudo ./update-golang.sh -declutter
На этот раз установочные файлы не будут кэшироваться.
Удалить Голанг
Чтобы отменить все действия, выполненные скриптом Update-golang, перейдите в каталог, в который вы клонировали скрипт, и запустите:
sudo ./update-golang.sh remove
Эта команда удалит Go и все связанные записи из пути ` PATH.
update-golang.sh: version 0.24
update-golang.sh: find_latest: found last release: 1.16.2
update-golang.sh: remove: found symlink for old install: /usr/local/go1.16.2.linux-amd64
update-golang.sh: remove: removing symlink: /usr/local/go
update-golang.sh: remove: removing dir: /usr/local/go1.16.2.linux-amd64
update-golang.sh: profile_path_remove: removing old settings from: /etc/profile.d/golang_path.sh
Ресурс:
- Репозиторий GitHub Update-golang
Связанное чтение:
- Создание виртуальных сред Golang с помощью Conda в Linux