Go — это язык программирования, созданный Google в результате разочарования в других языках. Разработчикам постоянно приходилось выбирать между эффективным языком программирования с очень длительным временем компиляции и удобным языком программирования, не отличающимся эффективностью в производственной среде. Язык Go был разработан, чтобы одновременно обеспечить все три преимущества: высокую скорость компиляции, удобство программирования и эффективное исполнение в производственной среде.
Go — это универсальный язык программирования, который можно использовать для самых разнообразных проектов. Он особенно хорошо подходит для сетевых программ и распределенных систем и заработал себе репутацию «языка облака». Он дает современным программистам больше возможностей благодаря мощному набору инструментов, позволяет устранить разногласия по поводу форматирования, делая формат частью спецификации языка, а также упрощает развертывание за счет компиляции в единый двоичный файл. Язык Go очень прост в изучении и имеет небольшой набор ключевых слов, что делает его идеальным вариантом как для начинающих, так и для опытных программистов.
В этом руководстве вы научитесь устанавливать и настраивать рабочее пространство программирования Go с помощью командной строки. В этом руководстве описывается процедура установки в Ubuntu 18.04, однако общие принципы могут применяться и для других дистрибутивов Debian Linux.
Вам потребуется компьютер или виртуальная машина с установленной операционной системой Ubuntu 18.04, а также административный доступ к этой машине и подключение к Интернету. Вы можете загрузить эту операционную систему через страницу релизов Ubuntu 18.04.
На этом шаге вы выполните установку Go посредством загрузки текущего выпуска с официальной страницы загрузки Go.
Для этого нужно найти URL для текущего файла тар-архива двоичного релиза. Также вам может понадобиться записать хэш SHA256, поскольку вы будете использовать его для проверки загруженного файла.
Основную часть установки и настройки вы будете выполнять через командную строку — текстовый интерфейс взаимодействия с компьютером. Вместо нажатия на кнопки вы вводите текст и получаете от компьютера обратную связь в текстовом формате.
Командная строка, также называемая оболочка или терминал, помогает изменять и автоматизировать многие повседневные задачи, выполняемые на компьютерах каждый день. Это необходимый и очень важный инструмент для разработчиков программного обеспечения. Существует много других разнообразных команд терминала, с помощью которых вы можете выполнять множество различных задач. Дополнительную информацию об интерфейсе командной строки можно найти в руководстве Введение в терминал Linux.
В Ubuntu 18.04 вы можете найти приложение терминала, нажав значок Ubuntu в верхнем левом углу экрана и введя terminal
в панель поиска. Нажмите на значок приложения терминала, чтобы открыть его. Также вы можете нажать клавиши CTRL
, ALT
и T
на клавиатуре, чтобы открыть приложение терминала автоматически.
После открытия терминала двоичные файлы 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.
Примечание. Хотя /usr/local/go
— официально рекомендованная директория, некоторым пользователям может потребоваться использовать другой путь.
На этом шаге вы загрузили и установили Go на компьютер под управлением Ubuntu 18.04. На следующем шаге вы выполните настройку рабочего пространства Go.
После установки Go вы можете создать рабочее пространство для программирования. На корневом уровне рабочего пространства Go имеются две директории:
src
: это директория с исходными файлами Go. Исходный файл или файл исходного кода — это файл, который вы пишете на языке программирования Go. Компилятор Go использует исходные файлы для создания исполняемого двоичного файла.bin
: директория, содержащая исполняемые файлы, которые были созданы и установлены инструментами Go. Исполняемые файлы — это двоичные файлы, которые запускаются в системе и выполняют задачи. Обычно это программы, скомпилированные из вашего исходного кода или из другого загруженного исходного кода Go.Субдиректория src
может содержать несколько репозиториев контроля версий (например, Git, Mercurial и Bazaar). Это обеспечивает канонический импорт кода в ваш проект. Канонический импорт — это операция импорта, которая ссылается на полностью квалифицированный пакет, например 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
создать в директории все родительские элементы
, даже если их еще не существует. При использовании параметров {bin,src}
для команды mkdir
создается набор аргументов, предписывающий ей создать директорию bin
и директорию src
.
Таким образом, обеспечивается размещение следующей структуры директорий:
└── $HOME
└── go
├── bin
└── src
До выпуска версии Go 1.8 обязательно было создавать локальную переменную среды с именем $GOPATH
. $GOPATH
указывает компилятору, где находится импортированный сторонний исходный код, а также написанный вами локальный исходный код. Хотя это больше явно не требуется, создать такую переменную все равно полезно, поскольку многие сторонние инструменты зависят от ее использования.
Вы можете задать $GOPATH
, добавив глобальные переменные в ваш ~/.profile
. Также вы можете добавить ее в файл .zshrc
или .bashrc
в соответствии с конфигурацией оболочки.
Откройте файл ~/.profile
с помощью nano
или другого предпочитаемого текстового редактора:
- nano ~/.profile
Чтобы задать переменную $GOPATH
, добавьте в файл следующую строку:
export GOPATH=$HOME/go
При компиляции и установке инструментов Go помещает их в директорию $GOPATH/bin
. Для удобства субдиректория /bin
рабочего пространства обычно добавляется в переменную PATH
в файле ~/.profile
:
export PATH=$PATH:$GOPATH/bin
Это позволит запускать любые компилируемые или загружаемые программы через инструменты Go в любом месте в вашей системе.
Наконец, вам нужно добавить двоичный файл go
в PATH
. Для этого добавьте /usr/local/go/bin
в конец строки:
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 и настроили необходимые переменные среды. На следующем шаге мы протестируем рабочее пространство, запустив в нем код.
Мы настроили рабочее пространство 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 и теперь можете начинать проект по программированию.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
go get уже не поддерживается, статья не актуальна