MyTetra Share
Делитесь знаниями!
Установка Go (Golang) на Debian 11 Bullseye
Время создания: 02.06.2023 14:53
Автор: Xintrea
Текстовые метки: linux, debian, go, golang, установка, инсталляция
Раздел: Компьютер - Программирование - Язык Go
Запись: xintrea/mytetra_syncro/master/base/1685706833rubnbgm481/text.html на raw.github.com

Шаг 1. Перед установкой любого программного обеспечения


Важно убедиться, что система обновлена, выполнив следующие команды apt в терминале:



sudo apt update

sudo apt upgrade

sudo apt install wget software-properties-common apt-transport-https



Шаг 2. Установка Go на Debian 11


Если нужно установить Go из репозитария, следует выполнить команду:



apt install golang



И можно сразу переходить к написанию Hello Word.


Если же необходимо установить самую свежую версию Го, то необходимо выполнить гораздо больше действий. Самое правильное - ознакомиться с официальной страницей, на которой написано как устанавливать Go, и сделать все так как написано там:



https://go.dev/doc/install



Если что-то непонятно, то для Debian можно воспользоваться следующей последовательностью действий.



Внимание! Перед установкой языка Го не из репозитария (например, если нужна свежая версия), для исключения путанницы лучше удалить пакет golang и связанные с ним пакеты, воспользовавшить apt / synaptic.



Для установки свежей версии, надо скачать последнюю версию Go с официальной страницы https://golang.org/dl, например:



wget https://golang.org/dl/go1.20.4.linux-amd64.tar.gz



Затем из-под рута нужно удалить старую версию Go, если она была раньше установлена вручную не из репозитария:



rm -rf /usr/local/go



Далее, под правами рута, полученный архив распаковывается в каталог /usr/local:



sudo tar -zxvf go1.20.4.linux-amd64.tar.gz -C /usr/local/



Шаг 3. Настройка среды Go


Далее от рута настраивается заполнение переменной среды PATH, чтобы включить каталог bin языка Go в путь поиска исполнимых бинарников и библиотек.


По мнению инженеров Google, если нужно, чтобы новая версия языка Go была доступна для всех пользователей, необходимо создать файл настройки пути в общесистемном профиле (команду выполнять под рутом):



echo "export PATH=/usr/local/go/bin:\${PATH}" | tee /etc/profile.d/go.sh



Чтобы не перегружаться, от текущего обычного пользователя можно перечитать PATH в той консоли, в которой будет вызываться Go:



source /etc/profile.d/go.sh



Однако при таком решении проблема возникнет в том, что на самом деле после перезагрузки путь к Go будет установлен в переменной PATH пользователя root, а для остальных пользователей в переменную PATH путь к Go прописан не будет. И придется каждый раз выполнять команду source.



Примечание: Возможно, авторы вышеуказанного решения предполагали, что для работы с Go под обычным пользователем будет производиться вход через консольный login-shell (это оправдано для серверов). При таком входе данное решение будет работать, так как один и тот же шелл используется и для входа, и для создания переменных окружения, и для последующего выполнения команд.



Если же нужно настроить новую версию Go для текущего пользователя, который входит через графический вход, можно прописать команду установки пути к Go в пользовательский файл ~/.bashrc:



echo "export PATH=/usr/local/go/bin:\${PATH}" | tee -a $HOME/.bashrc



И чтобы не перегружаться:



source $HOME/.bashrc



На этом Go готов к работе. И даже после перезагрузки путь к Go будет находиться в переменной PATH.


Проверить работоспособность Go можно, показав версию программы (перед опцией version, в отличие от других утилит, тире "-" или двойное тире "--" не ставится):



go version



Так же следует проверить переменные среды Go:



go env



Шаг 4. Простая программа «hello world» на языке Go


Теперь создайте каталог hello в своем домашнем каталоге:



sudo mkdir go-hello

sudo nano go-hello/hello.go



Добавьте следующий файл:



package main


import "fmt"


func main() {

fmt.Printf("Привет, мир!\n")

}



Теперь запустите код с помощью команды go:



go run hello.go



Вы получите следующий текст приветствия:



Привет, мир!



Язык Го работает.


 
MyTetra Share v.0.59
Яндекс индекс цитирования