Главная >> Инструкции >> Установка Go в Ubuntu 20.04

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

Язык программирования 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 version

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

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

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

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

wget https://dl.google.com/go/go1.15.2.linux-amd64.tar.gz

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

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

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

export PATH=$PATH:/opt/go/bin

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

go version

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

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

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

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

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

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

sudo apt install golang

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

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

mkdir ~/work/src/hello/
cd ~/work/src/hello/

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

export GOPATH=$HOME/work/

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

vi hello.go

package main
import "fmt"
func main() {
fmt.Println("hello, world")
}

 

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

go build hello

 

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

./hello

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

go install

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

Выводы

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

6 комментариев к “Установка Go в Ubuntu 20.04”

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

      Usage:

      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
      А это наверно не совсем правильно. Как я понимаю, результаты компиляции должны помещаться в каталог ~\work\src\hello

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

      export GOBIN=$HOME/work/bin"
      Крч, пишем в консоль "go install hello(или другое имя вашего файла)",
      вам выдает ошибку: "go install: no install location for .go files listed on command line (GOBIN not set)",
      сразу же пишем: "export GOBIN=$HOME/work/bin".
      Теперь вновь прописываем: "go install hello(или другое имя вашего файла)" и если компилятор не найдет ошибок, то ваша прога будет готова;)
      Также проще запускать уже скомпилированные програмы командой: "go run hello.go"
      Как у меня все выглядит в консоли:

      do-while@NewGenius ~/work/src $ go install hello.go
      go install: no install location for .go files listed on command line (GOBIN not set)
      do-while@NewGenius ~/work/src $ export GOBIN=$HOME/work/bin
      do-while@NewGenius ~/work/src $ go install hello.go
      do-while@NewGenius ~/work/src $ go run hellolinux.go
      Hello Go on Gnu/Linux! - это строка и есть текст программы.

      Ответить
  1. >Если всё хорошо, отредактируйте файл /etc/environment и добавьте в строку объявления PATH путь /opt/go/bin:
    - на скриншоте ниже точно точно точка с запятой?

    Ответить

Оставьте комментарий