Как установить Go и настроить среду локального программирования в Ubuntu 18.04

Вступление

Go - это язык программирования, который родился из разочарования в Google. Разработчикам постоянно приходилось выбирать язык, который выполнялся эффективно, но компилировался много времени, или язык, который было легко программировать, но работал неэффективно в производстве. Go был спроектирован таким образом, чтобы все три были доступны одновременно: быстрая компиляция, простота программирования и эффективное выполнение на производстве.

Хотя Go является универсальным языком программирования, который можно использовать для многих различных программных проектов, он особенно хорошо подходит для сетевых программ / программ распределенных систем и заслужил репутацию «языка облака». Он направлен на то, чтобы помочь современному программисту сделать больше с помощью мощного набора инструментов, устранить споры о форматировании, сделав формат частью спецификации языка, а также упростив развертывание путем компиляции в один двоичный файл. Go легко изучить, с очень небольшим набором ключевых слов, что делает его отличным выбором как для начинающих, так и для опытных разработчиков.

Этот учебник проведет вас через установку и настройку рабочей области программирования с помощью Go через командную строку. В этом руководстве будет подробно описана процедура установки Ubuntu 18.04, но общие принципы могут применяться к другим дистрибутивам Debian Linux.

Предпосылки

Вам понадобится компьютер или виртуальная машина с установленной Ubuntu 18.04, а также администраторский доступ к этой машине и подключение к Интернету. Вы можете загрузить эту операционную систему черезUbuntu 18.04 releases page.

[[step-1 -—- setting-up-go]] == Шаг 1. Настройка Go

На этом этапе вы установите Go, загрузив текущий выпуск сofficial Go downloads page.

Для этого вам нужно найти URL для текущего бинарного релиза тарбола. Вы также захотите отметить хэш SHA256, указанный рядом с ним, так как вы будете использовать этот хеш дляverify the downloaded file.

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

Командная строка, также известная какshell илиterminal, может помочь вам изменить и автоматизировать многие задачи, которые вы выполняете на компьютере каждый день, и является важным инструментом для разработчиков программного обеспечения. Есть много команд терминала для изучения, которые могут позволить вам делать более мощные вещи. Для получения дополнительных сведений о командной строке ознакомьтесь с учебным курсомIntroduction to the Linux Terminal.

В Ubuntu 18.04 вы можете найти приложение «Терминал», щелкнув значок Ubuntu в верхнем левом углу экрана и набравterminal в строке поиска. Нажмите на значок приложения терминала, чтобы открыть его. Кроме того, вы можете одновременно нажать клавишиCTRL,ALT иT на клавиатуре, чтобы автоматически открыть приложение «Терминал».

Ubuntu Terminal

После открытия терминала вы вручную установите двоичные файлы Go. Хотя вы можете использовать диспетчер пакетов, напримерapt-get, выполнение шагов ручной установки поможет вам понять любые изменения конфигурации вашей системы, которые необходимы для создания действующей рабочей области Go.

Перед загрузкой Go убедитесь, что вы находитесь в домашнем (~) каталоге:

cd ~

Используйтеcurl, чтобы получить URL-адрес архива, который вы скопировали с официальной страницы загрузок Go:

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

Затем используйтеsha256sum для проверки архива:

sha256sum go1.12.1.linux-amd64.tar.gz

Хеш, отображаемый при запуске вышеуказанной команды, должен совпадать с хешем, который был на странице загрузок. Если это не так, то это неверный файл, и вы должны загрузить файл снова.

Output2a3fdabf665496a0db5f41ec6af7a9b15a49fbe71a85a50ca38b1f13a103aeec  go1.12.1.linux-amd64.tar.gz

Затем распакуйте загруженный архив и установите его в нужное место в системе. Рекомендуется не превышать/usr/local:

sudo tar -xvf go1.12.1.linux-amd64.tar.gz -C /usr/local

Теперь у вас будет каталог с именемgo в каталоге/usr/local. Затем рекурсивно измените владельца и группу этого каталога наroot:

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

Это защитит все файлы и гарантирует, что только пользовательroot сможет запускать двоичные файлы Go.

[.note] #Note: Хотя/usr/local/go является официально рекомендуемым местоположением, некоторые пользователи могут предпочесть или потребовать другие пути.
#

На этом этапе вы загрузили и установили Go на свой компьютер с Ubuntu 18.04. На следующем шаге вы настроите рабочее пространство Go.

[[step-2 -—- create-your-go-workspace]] == Шаг 2. Создание вашей рабочей области Go

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

  • src: каталог, содержащий исходные файлы Go. Исходный файл - это файл, который вы пишете на языке программирования Go. Исходные файлы используются компилятором Go для создания исполняемого двоичного файла.

  • bin: каталог, содержащий исполняемые файлы, созданные и установленные инструментами Go. Исполняемые файлы - это двоичные файлы, которые запускаются в вашей системе и выполняют задачи. Обычно это программы, скомпилированные вашим исходным кодом или другим загруженным исходным кодом Go.

Подкаталогsrc может содержать несколько репозиториев управления версиями (например,Git,Mercurial иBazaar). Это позволяет канонически импортировать код в ваш проект. ИмпортCanonical - это импорт, который ссылается на полностью определенный пакет, напримерgithub.com/digitalocean/godo.

Вы увидите такие каталоги, какgithub.com,golang.org или другие, когда ваша программа импортирует сторонние библиотеки. Если вы используете репозиторий кода, напримерgithub.com, вы также поместите свои проекты и исходные файлы в этот каталог. Мы рассмотрим эту концепцию позже на этом этапе.

Вот как может выглядеть типичное рабочее пространство:

.
├── bin
│   ├── buffalo                                      # command executable
│   ├── dlv                                          # command executable
│   └── packr                                        # command executable
└── src
    └── github.com
        └── digitalocean
            └── godo
                ├── .git                            # Git repository metadata
                ├── account.go                      # package source
                ├── account_test.go                 # test source
                ├── ...
                ├── timestamp.go
                ├── timestamp_test.go
                └── util
                    ├── droplet.go
                    └── droplet_test.go

Каталог по умолчанию для рабочего пространства Go начиная с версии 1.8 - это домашний каталог вашего пользователя с подкаталогомgo или$HOME/go. Если вы используете более раннюю версию Go, чем 1.8, по-прежнему считается лучшей практикой использовать расположение$HOME/go для вашей рабочей области.

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

mkdir -p $HOME/go/{bin,src}

Параметр-p указываетmkdir создать всеparents в каталоге, даже если они в настоящее время не существуют. Использование{bin,src} создает набор аргументов дляmkdir и указывает ему создать как каталогbin, так и каталогsrc.

Это обеспечит наличие следующей структуры каталогов:

└── $HOME
    └── go
        ├── bin
        └── src

До Go 1.8 требовалось установить локальную переменную среды с именем$GOPATH. $GOPATH сообщил компилятору, где найти импортированный сторонний исходный код, а также любой локальный исходный код, который вы написали. Хотя это больше не требуется явно, это все еще считается хорошей практикой, поскольку многие сторонние инструменты по-прежнему зависят от этой переменной.

Вы можете установить свой$GOPATH, добавив глобальные переменные в ваш~/.profile. Вы можете добавить это в файл.zshrc или.bashrc в соответствии с конфигурацией вашей оболочки.

Сначала откройте~/.profile с помощьюnano или вашего предпочтительного текстового редактора:

nano ~/.profile

Установите ваш$GOPATH, добавив в файл следующее:

~/.profile

export GOPATH=$HOME/go

Когда Go компилирует и устанавливает инструменты, он помещает их в каталог$GOPATH/bin. Для удобства обычно добавляется подкаталог/bin рабочей области вPATH в~/.profile:

~/.profile

export PATH=$PATH:$GOPATH/bin

Это позволит вам запускать любые программы, которые вы компилируете или загружаете с помощью инструментов Go, в любой точке вашей системы.

Наконец, вам нужно добавить двоичный файлgo в вашPATH. Вы можете сделать это, добавив/usr/local/go/bin в конец строки:

~/.profile

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

Добавление/usr/local/go/bin к вашему$PATH делает все инструменты Go доступными в любом месте вашей системы.

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

. ~/.profile

Вы можете проверить, что ваш$PATH обновлен, используя командуecho и проверив вывод:

echo $PATH

Вы увидите свой$GOPATH/bin, который появится в вашем домашнем каталоге. Если вы вошли в систему какroot, вы увидите/root/go/bin в пути.

Output/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin

Вы также увидите путь к инструментам Go для/usr/local/go/bin:

Output/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin

Проверьте установку, проверив текущую версию Go:

go version

И мы должны получить вывод, как это:

Outputgo version go1.12.1 linux/amd64

Теперь, когда у вас есть корень рабочего пространства и задана переменная среды$GOPATH, вы можете создавать свои будущие проекты со следующей структурой каталогов. В этом примере предполагается, что вы используетеgithub.com в качестве репозитория:

$GOPATH/src/github.com/username/project

Так, например, если вы работали над проектомhttps://github.com/digitalocean/godo, он был бы сохранен в следующем каталоге:

$GOPATH/src/github.com/digitalocean/godo

Эта структура проекта сделает проекты доступными с помощью инструментаgo get. Это также поможет удобочитаемости позже. Вы можете проверить это, используя командуgo get и загрузив библиотекуgodo:

go get github.com/digitalocean/godo

Это загрузит содержимое библиотекиgodo и создаст каталог$GOPATH/src/github.com/digitalocean/godo на вашем компьютере.

Вы можете проверить, успешно ли он загрузил пакетgodo, указав каталог:

ll $GOPATH/src/github.com/digitalocean/godo

Вы должны увидеть вывод, похожий на этот:

Outputdrwxr-xr-x 4 root root  4096 Apr  5 00:43 ./
drwxr-xr-x 3 root root  4096 Apr  5 00:43 ../
drwxr-xr-x 8 root root  4096 Apr  5 00:43 .git/
-rwxr-xr-x 1 root root     8 Apr  5 00:43 .gitignore*
-rw-r--r-- 1 root root    61 Apr  5 00:43 .travis.yml
-rw-r--r-- 1 root root  2808 Apr  5 00:43 CHANGELOG.md
-rw-r--r-- 1 root root  1851 Apr  5 00:43 CONTRIBUTING.md
.
.
.
-rw-r--r-- 1 root root  4893 Apr  5 00:43 vpcs.go
-rw-r--r-- 1 root root  4091 Apr  5 00:43 vpcs_test.go

На этом шаге вы создали рабочее пространство Go и настроили необходимые переменные среды. На следующем шаге вы протестируете рабочее пространство с некоторым кодом.

[[step-3 -—- Creating-a-simple-program]] == Шаг 3 - Создание простой программы

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

В домашнем каталоге откройте текстовый редактор командной строки, напримерnano, и создайте новый файл:

nano hello.go

Напишите вашу программу в новом файле:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Этот код будет использовать пакетfmt и вызывать функциюPrintln сHello, World! в качестве аргумента. Это приведет к тому, что фразаHello, World! будет выводиться на терминал при запуске программы.

Выйдите изnano, нажав клавишиCTRL иX. Когда будет предложено сохранить файл, нажмитеY, а затемENTER.

Как только вы выйдете изnano и вернетесь в свою оболочку, запустите программу:

go run hello.go

Программаhello.go заставит терминал выдать следующий вывод:

OutputHello, World!

На этом этапе вы использовали базовую программу, чтобы убедиться, что ваше рабочее пространство Go правильно настроено.

Заключение

Поздравляем! На этом этапе у вас есть рабочая среда программирования Go, настроенная на вашем компьютере с Ubuntu, и вы можете начать проект кодирования!

Related