====== Установка Go ====== Как известно, [[yggdrasil:Yggdrasil|Yggdrasil]] и [[Yggdrasil:email:Yggmail|Yggmail]] написаны на [[go:go|Go]]. Разработчики этих программ обычно используют возможности последней версии Go при написании кода, и такой код зачастую не компилируется на более ранних версиях Go. В связи с этим у некоторых пользователей могут возникнуть сложности с самостоятельной сборкой Yggdrasil, Yggmail и других программ, т.к., в репозиториях популярных дистрибутивов Linux обычно содержатся устаревшие версии Go. Ниже кратко описано, как можно установить Go последней версии в Linux (установка под Windows, думаю, сложностей вызвать не должна). Используем дистрибутив на базе Debian, в других дистрибутивах всё делается аналогично. Во первых, стоит проверить, не установлена ли в системе уже какая-либо версия Go: go version Если установленная версия Go является устаревшей, удаляем её: sudo apt remove golang Если остались каталоги /usr/lib/go-1(x).* или /usr/lib/go, или /usr/local/go - их можно удалить. Например: sudo rm-rf /usr/lib/go-1.13 Смотрим, какая версия Go присутствует в репозитории дистрибутива: sudo apt update apt-cache search golang или sudo apt update apt-cache pkgnames golang Информация о пакете: apt-cache show golang-go Если версия в репозитории дистрибутива устраивает, устанавливаем её: sudo apt install golang-go Если не устраивает, идем по адресу: https://golang.org/dl/, выбираем и скачиваем архив под свой дистрибутив. Например, для Raspbian 9.13 (RaspberryPi 3): wget https://golang.org/dl/go1.17.1.linux-armv6l.tar.gz Распаковываем каталог go и перемещаем его в ''/usr/local/'': tar -xzf go1.17.1.linux-armv6l.tar.gz sudo mv go /usr/local/ Скачанный архив можно удалить: rm go1.17.1.linux-armv6l.tar.gz Далее, необходимо создать рабочий каталог go, в который вы будете собирать программы: mkdir ~/go И последнее: прописываем в профиль переменные среды окружения. Открываем файл ''~/.bashrc'' или ''~/.profile'' и в конец файла дописываем: export PATH=$PATH:/usr/local/go/bin export GOPATH=~/go (если в файле уже были подобные строки, связанные с go, их можно удалить) Далее, нужно перелогиниться в систему, чтобы отработали команды в .bashrc, либо выполнить: source .bashrc Проверяем: go version Должны увидеть установленную версию go. go env Должны увидеть все переменные среды окружения, связанные с go. Всё, можно собирать пакеты из исходников самостоятельно.