Установка Go в Ubuntu

Язык программирования Go или как его еще называют Golang, это относительно новый язык от корпорации Google, который по своим возможностям стремится заменить Си и С++. Он создан одним из разработчиков Си и здесь уже были учтены все ошибки, допущенные при создании того языка. Go имеет улучшенную безопасность, мультипоточность, полностью кросплатформенен и многое другое. На Go можно даже писать приложения для Android.

В этой статье мы рассмотрим как выполняется установка Go в Ubuntu 20.04 и более поздних версиях. Рассмотрим установку компилятора с официального сайта или PPA, а также запустим небольшую программу чтобы проверить как все работает.

Что такое Go?

Сначала важно понять что же все-таки такое Go. Этот язык был создан сотрудниками корпорации Google в 2009 году. В этом процессе принимал участие Кен Томпсон, один из разработчиков Си. В первую очередь это компилируемый язык системного программирования, который подходит для создания высокоэффективных программ. Хотя в Go возможен запуск программ в интерпретаторе, они компилируются в объектный код и не требуют виртуальной машины.

Основные возможности языка – это строгая типизация, поддержка указателей, поддержка юникода, динамические массивы, хэш таблицы, автоматическое управление памятью, потоки для параллельного программирования, а также каналы для связи между потоками. Синтаксис Go очень похож на Си, с тем лишь отличием, что некоторые компоненты позаимствованы из других скриптовых языков. Язык постоянно развивается и получает новые возможности. А теперь рассмотрим как выполняется установка языка в Ubuntu.

Установка Go на Ubuntu

Есть несколько способов установки этого языка. Вы можете загрузить файл с бинарными файлами компилятора с официального сайта и распаковать его в какой-либо директории. Затем останется только установить несколько переменных окружения. Так вы можете получить самую последнюю версию.

1. Установка из официальных репозиториев

Сначала обновите систему до самой новой версии:

sudo apt update
sudo apt upgrade

Затем для установки достаточно выполнить такую команду:

sudo apt install golang

На этом установка завершена. Для просмотра версии выполните:

Установка Go в Ubuntu

После этого вы можете переходить к настройке рабочего окружения для языка.

2. Установка из официального сайта

Как видите, на момент написания статьи в репозиториях находится версия 1.13. В то же время на официальном сайте уже можно найти версию 1.15. Если вы хотите получить именно её, надо устанавливать компилятор языка из официального сайта.

Установка Go в Ubuntu

Просто выберите нужную операционную систему и дождитесь окончания загрузки. Для скачивания версии 1.15 можете воспользоваться такой командой:

После окончания загрузки расспакуйте полученный архив в папку /opt:

sudo tar -C /opt -xzf go1.15.2.linux-amd64.tar.gz

Тут тоже установка завершена. Осталось добавить путь к исполняемым файлам go в переменную среды PATH:

Теперь можно проверить версию Golang:

Установка Go в Ubuntu

Если всё хорошо, отредактируйте файл /etc/environment и добавьте в строку объявления PATH путь /opt/go/bin:

Установка Go в Ubuntu

Изменения будут применены только после перезагрузки.

3. Установка из PPA

В последнее время PPA один за другим перестают обновляться и поддерживать новые версии Ubuntu, но этот всё ещё работает и содержит довольно свежую версию компилятора Golang – 1.15. Для добавления PPA в систему выполните такие команды:

sudo add-apt-repository ppa:longsleep/golang-backports

Затем для установки достаточно выполнить:

sudo apt install golang

Тестирование языка Go

Особенность Go в том, что все пакеты, которые вы создаете должны находится в определённой папке. Go не будет искать пакеты сначала в текущей папке проекта, как это делается обычно, а будет пытаться их найти в папке указанной в переменной окружения GOPATH. Поэтому сначала создадим рабочую папку для исходников в домашней папке:

Дальше нужно сообщить Go, где находится наша папка для проектов, для этого с помощью GOPATH:

Эту же строку можно добавить в /etc/profile, чтобы не вводить её каждый раз. Обратите внимание, что в рабочей папке есть папка src, а уже в ней нужно создавать папки проектов, для каждого проекта отдельная папка. Дальше создадим небольшую программу, которая будет выводить только одну строчку на экран:

package main
import “fmt”
func main() <
fmt.Println(“hello, world”)
>

Установка Go в Ubuntu

Теперь соберем программу:

Затем программу можно выполнить такой командой:

Установка Go в Ubuntu

Программу можно не только собрать, но и установить с помощью команды install:

Тогда исполняемый файл программы будет создан не в текущей папке а в данном примере в $HOME/work/bin. Если эта папка не существует, то она будет создана.

Выводы

В этой статье мы рассмотрели как выполняется установка go на ubuntu, здесь есть целых два метода и вы обязательно подберете тот, который подходит для вас больше всего. Если у вас остались вопросы, спрашивайте в комментариях!

Установка Go в Ubuntu

Установка Go в Ubuntu

Установка Go в Ubuntu

Установка Go в Ubuntu

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

5 комментариев

Рекомендую использовать Go Version Manager https://github.com/moovweb/gvm

вот такую фигню пишет:
[email protected]

/work/src/hello $ go install hello.go
go install: no install location for .go files listed on command line (GOBIN not set)
и что с этим делать?

Я вчера тоже устанавливал и настраивал GO по этой статье и тоже столкнулся с таким сообщением. Для решения сперва просто набрал GO, получил такой ответ:
Go is a tool for managing Go source code.

go command [arguments]

The commands are:

build compile packages and dependencies
clean remove object files
doc show documentation for package or symbol
env print Go environment information
bug start a bug report
fix run go tool fix on packages
fmt run gofmt on package sources
generate generate Go files by processing source
get download and install packages and dependencies
install compile and install packages and dependencies
list list packages
run compile and run Go program
test test packages
tool run specified go tool
version print Go version
vet run go tool vet on packages

Use “go help [command]” for more information about a command.

Additional help topics:

c calling between Go and C
buildmode description of build modes
filetype file types
gopath GOPATH environment variable
environment environment variables
importpath import path syntax
packages description of package lists
testflag description of testing flags
testfunc description of testing functions

Use “go help [topic]” for more information about that topic.
—————————————————————————————–
Здесь меня привлекла команда env и я набрал go env и получил:
GOARCH=”amd64″
GOBIN=””
GOEXE=””
GOHOSTARCH=”amd64″
GOHOSTOS=”linux”
GOOS=”linux”
GOPATH=”/home/user_name/work/”
GORACE=””
GOROOT=”/usr/lib/go-1.9″
GOTOOLDIR=”/usr/lib/go-1.9/pkg/tool/linux_amd64″
GCCGO=”gccgo”
CC=”gcc”
GOGCCFLAGS=”-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build068158681=/tmp/go-build -gno-record-gcc-switches”
CXX=”g++”
CGO_ENABLED=”1″
CGO_CFLAGS=”-g -O2″
CGO_CPPFLAGS=””
CGO_CXXFLAGS=”-g -O2″
CGO_FFLAGS=”-g -O2″
CGO_LDFLAGS=”-g -O2″
PKG_CONFIG=”pkg-config”
———————————————————–
Здесь видно, что переменная GOBIN пустая. Вот поэтому. думаю я, в нашем сообщении об ошибке пишется GOBIN not set. Я у себя в ручную установил её значение в “/usr/lib/go-1.9/bin/” и стало работать. Правда, это привело к тому, что скомпилированные файлы GO помещает в этот же каталог:
$ ls -ls /usr/lib/go-1.9/bin/
итого 11016
7044 -rwxr-xr-x 1 root root 7209352 окт 31 12:38 go
2144 -rwxr-xr-x 1 root root 2194888 окт 31 12:38 gofmt
1828 -rwxr-xr-x 1 root root 1868367 дек 11 17:55 hello
А это наверно не совсем правильно. Как я понимаю, результаты компиляции должны помещаться в каталог

Смог решить эту проблему по этой статье.
Ключевой была эта строчка:
“Note: Set the GOBIN path to generate a binary file when go install is run.