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

Go – это современный язык программирования, разработанный в Google. Он предлагает надежный набор библиотек, благодаря чему становится все более популярным и чаще используется во многих приложениях и компаниях. В этом мануале вы узнаете, как установить последнюю версию Go (это Go 1.10 на момент публикации), а также создать простое приложение Hello World.

Требования

Для работы вам понадобится сервер Ubuntu 18.04, настроенный по мануалу Начальная настройка сервера Ubuntu 18.04.

1: Установка Go

Для начала подключитесь к серверу по ssh:

ssh 8host@your_server_ip

Загрузите последнюю версию Go с официального сайта проекта. Здесь вы найдете URL на архив текущей стабильной версии и хэш SHA256.

Перейдите на страницу загрузки Go и найдите URL-адрес архива текущей версии, а также его хэш SHA256. Убедитесь, что вы находитесь в своем домашнем каталоге и используете curl для загрузки тарбола:

cd ~
curl -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Проверьте целостность архива с помощью sha256sum:

sha256sum go1.10.3.linux-amd64.tar.gz
go1.10.3.linux-amd64.tar.gz
fa1b0e45d3b647c252f51f5e1204aba049cde4af177ef9f2181f43004f901035  go1.10.3.linux-amd64.tar.gz

Получив хэш, убедитесь, что он соответствует значению на странице загрузки.

Затем используйте tar для извлечения архива. Флаг x распакует архив, v настраивает расширенный вывод (список извлеченных файлов), а f определяет имя файла:

tar xvf go1.10.3.linux-amd64.tar.gz

Теперь в вашем домашнем каталоге должен быть каталог по имени go. Передайте права на каталог go пользователю и группе root и переместите его в /usr/local:

sudo chown -R root:root ./go
sudo mv go /usr/local

Примечание: Официально рекомендуется использовать каталог /usr/local/go, однако в зависимости от ситуации вам может потребоваться другое расположение.

2: Настройка путей Go

Теперь нужно установить пути в вашей среде.

Сначала установите корневой каталог Go, где нужно искать его файлы.

sudo nano ~/.profile

В конец файла добавьте строки:

export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

Если вы выбрали другое расположение для установки Go, укажите его в этом файле. В этом примере показаны команды, которые сработают, если Go установлен в домашнем каталоге:

export GOROOT=$HOME/go
export GOPATH=$HOME/work
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Сохраните и закройте файл. Обновите настройки:

source ~/.profile

3: Тестирование установки

Теперь нужно убедиться, что установка Go прошла успешно.

Создайте новый каталог для рабочего пространства Go, где Go сможет выполнять сборку файлов.

mkdir $HOME/work

Затем создайте иерархию каталогов с помощью этой команды, чтобы поместить здесь тестовый файл. Вы можете заменить значение user своим именем пользователя GitHub, если вы планируете использовать Git для контроля версий и сохранения кода Go на GitHub. Если вы не планируете использовать GitHub для управления кодом, ваша структура каталогов может выглядеть иначе (например ~/my_project).

mkdir -p work/src/github.com/user/hello

Теперь создайте простой файл для приложения Hello World:

nano ~/work/src/github.com/user/hello/hello.go

Вставьте в него такой код. Он использует основные пакеты Go, импортирует форматированный компонент IO и устанавливает новую функцию, которая выводит «Hello, World» при запуске.

package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}

Эта программа будет выводить фразу «Hello, World», если она успешно работает. Это позволит вам понять, что программы Go компилируются правильно. Сохраните и закройте файл, затем скомпилируйте его, вызвав команду Go install:

go install github.com/user/hello

Запустите файл, вызвав команду:

hello

Если она вернула «hello, world», то установка Go прошла успешно. Чтобы узнать, где установлен скомпилированный файл hello, используйте эту команду:

which hello
/home/user/work/bin/hello

Заключение

Установив и настроив последнюю версию Go, вы можете приступать к разработке своего проекта.

Читайте также: Сборка исполняемых файлов Go для различных платформ в Ubuntu 16.04

Tags: , ,