береженого кольт бережет
береженого кольт бережет

Установка Go и настройка локальной среды в macOS

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

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

В этом руководстве вы научитесь устанавливать Go на локальном компьютере macOS и настраивать среду программирования через командную строку.

Шаг 1 — Открытие терминала

Основную часть установки и настройки мы будем выполнять через командную строку — текстовый интерфейс взаимодействия с компьютером. Вместо нажатия на кнопки вы вводите текст и получаете от компьютера обратную связь в текстовом формате. Командная строка, также называемая «оболочка», помогает изменять и автоматизировать многие повседневные задачи, выполняемые на компьютерах. Это необходимый и очень важный инструмент для разработчиков программного обеспечения.

Терминал macOS — это приложение, которое вы можете использовать для доступа к интерфейсу командной строки. Вы можете найти его в Finder, как и любое другое приложение. Для этого перейдите в папку «Приложения», а затем в папку «Утилиты». В этой папке дважды нажмите на приложение Terminal, чтобы открыть его как любое другое приложение. Также вы можете использовать поиск Spotlight, удерживая клавиши CMD и ПРОБЕЛ и вводя Terminal в появляющемся поле.

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

Шаг 2 — Установка Xcode

Xcode — это интегрированная среда разработки (IDE), состоящая из различных инструментов разработки программного обеспечения для macOS. Вы можете проверить установку Xcode, введя в окне терминала следующую команду:

$ xcode-select -p

Следующие результаты означают, что среда разработки Xcode установлена:

Output

/Library/Developer/CommandLineTools

Если вы получили сообщение об ошибке, выполните установку Xcode через App Store в браузере, используя параметры по умолчанию.

После установки Xcode вернитесь в окно терминала. Теперь вам нужно установить отдельное приложение Command Line Tools Xcode с инструментами командной строки. Для этого введите следующую команду:

$ xcode-select --install

Теперь вы установили Xcode и приложение Command Line Tools, и мы готовы к установке диспетчера пакетов Homebrew.

Шаг 3 — Установка и настройка Homebrew

Хотя терминал macOS обладает многими функциями, совпадающими с функциями терминалов Linux и других систем Unix, в нем отсутствует встроенный диспетчер пакетов, основанный на передовом опыте. Диспетчер пакетов — это набор программных инструментов для автоматизации процессов установки, в число которых входят начальная установка программного обеспечения, обновление и настройка программного обеспечения, а также удаление программного обеспечения в случае необходимости. Диспетчер пакетов обеспечивает централизованное хранение установочных файлов и может обслуживать все программные пакеты в системе в распространенных форматах. Homebrew — это бесплатная система управления пакетами с открытым исходным кодом для macOS, упрощающая установку программного обеспечения в macOS.

Для установки Homebrew введите в окно терминала следующее:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Диспетчер Homebrew создан на языке Ruby и поэтому он изменит путь Ruby на вашем компьютере. Команда curl извлекает скрипт из заданного URL. Этот скрипт объясняет, какие операции будут выполнены, а затем приостанавливает процесс в ожидании вашего подтверждения. Так вы получаете большой объем обратной связи по работе скрипта в вашей системе, а также возможность проверить выполнение процесса.

Если вам потребуется ввести пароль, учтите, что нажимаемые клавиши не отображаются в окне терминала, но их ввод регистрируется. Просто нажмите клавишу Return после завершения ввода пароля. В противном случае нажмите клавишу y («Да»), чтобы подтвердить установку.

Просмотрим флаги, связанные с командой curl:

  • Флаг -f или --fail предписывает окну терминала не выводить документы HTML при ошибках сервера.
  • Флаг -s или --silent заглушает вывод curl так, что команда не отображает счетчик выполнения. В сочетании с флагом -S или --show-error этот флаг гарантирует вывод командой curl сообщения об ошибке в случае сбоя.
  • Флаг -L или --location предписывает команде curl повторить запрос в новое место, если сервер сообщает, что запрошенная страница перемещена в другое место.

После завершения процесса установки мы поместим директорию Homebrew на верхний уровень переменной среды PATH. Благодаря этому установка Homebrew будет вызываться для инструментов, которые macOS может автоматически выбирать и которые могут запускаться против создаваемой нами среды разработки.

Вам следует создать или открыть файл ~/.bash_profile с помощью текстового редактора командной строки nano, используя команду nano:

$ nano ~/.bash_profile

Когда файл откроется в окне терминала, введите следующую команду:

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

Для сохранения изменений нажмите клавишу CTRL и букву o, а затем нажмите клавишу RETURN, когда система предложит вам сделать это. Теперь вы можете выйти из nano, нажав клавишу CTRL и букву x.

Для активации этих изменений выполните в терминале следующую команду:

$ source ~/.bash_profile

После этого внесенные вами изменения переменной среды PATH вступят в силу.

Вы можете убедиться в успешной установке Homebrew с помощью следующей команды:

$ brew doctor

Если никакие обновления не требуются, на экране терминала появится следующее:

Output

Your system is ready to brew.

В ином случае может быть выведено предупреждение о необходимости запуска другой команды, например brew update для проверки актуальности установленной версии Homebrew.

После завершения установки Homebrew вы можете переходить к установке Go.

Шаг 4 — Установка Go

Вы можете использовать Homebrew для поиска всех доступных пакетов с помощью команды brew search. В этом руководстве мы будем искать пакеты или модули, связанные с Go:

$ brew search golang

Примечание. В этом руководстве не используется команда brew search go, поскольку она возвращает слишком много результатов. Поскольку go — очень короткое слово, и ему может соответствовать много пакетов, в качестве поискового запроса обычно используют golang. Эта практика также обычно применяется при поиске статей по Go в Интернете. Термин Golang происходит от названия домена Go, а именно golang.org.

Терминал выведет список модулей, которые вы можете установить:

Output

golang  golang-migrate

В этом списке будет и Go. Переходите к установке:

$ brew install golang

В окне терминала будет отображаться информация по процессу установки Go. Установка может занять несколько минут.

Чтобы проверить, какую версию Go вы установили, введите следующую команду:

$ go version

Эта команда выводит номер установленной версии Go. По умолчанию устанавливается самая последняя стабильная версия Go.

В будущем для обновления Go вы можете использовать следующие команды, которые сначала обновляют Homebrew, а затем — Go. Сейчас это не требуется, поскольку вы только что установили последнюю версию:

$ brew update
$ brew upgrade golang

brew update обновляет версию Homebrew, благодаря чему у вас будет самая актуальная информация о пакетах, которые вы хотите установить. Команда brew upgrade golang обновит пакет golang до последней доступной версии.

Рекомендуется регулярно проверять актуальность установленной версии Go.

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

Шаг 5 — Создание рабочего пространства Go

Вы установили Xcode, Homebrew и Go и теперь можете переходить к созданию рабочего пространства для программирования.

На корневом уровне рабочего пространства Go имеются две директории:

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

Субдиректория src может содержать несколько репозиториев контроля версий (например, GitMercurial и Bazaar). При импорте сторонних двоичных файлов вашей программой вы увидите такие директории, как github.com или golang.org. Если вы используете репозиторий кода, например github.com, вы также помещаете в эту директорию свои проекты и файлы исходного кода. Это обеспечивает канонический импорт кода в ваш проект. Канонический импорт — это операция импорта, которая ссылается на полностью квалифицированный пакет, например github.com/digitalocean/godo.

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

.
├── bin
│   ├── buffalo                                      # command executable
│   ├── dlv                                          # command executable
│   └── packr                                        # command executable
└── src
    └── github.com
        └── digitalocean
            └── godo
                ├── .git                            # Git reposistory 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 посредством ее добавления в файл ~/.bash_profile.

Откройте файл ~/.bash_profile с помощью nano или другого предпочитаемого текстового редактора:

$ nano ~/.bash_profile

Чтобы задать переменную $GOPATH, добавьте в файл следующую строку:

~/.bash_profile

export GOPATH=$HOME/go

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

~/.bash_profile

export PATH=$PATH:$GOPATH/bin

Теперь в файле ~/.bash_profile должны быть следующие записи:

~/.bash_profile

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

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

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

$ . ~/.bash_profile

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

$ echo $PATH

Вы должны увидеть директорию $GOPATH/bin в своей домашней директории. Если вы вошли в систему под именем пользователя sammy, вы увидите путь /Users/sammy/go/bin.

Output

/Users/sammy/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Copy

Вы создали корневую директорию рабочего пространства и задали переменную среды $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 посредством вывода директории:

$ ls -l $GOPATH/src/github.com/digitalocean/godo

Результат должен выглядеть примерно так:

Output

-rw-r--r--  1 sammy  staff   2892 Apr  5 15:56 CHANGELOG.md
-rw-r--r--  1 sammy  staff   1851 Apr  5 15:56 CONTRIBUTING.md
.
.
.
-rw-r--r--  1 sammy  staff   4893 Apr  5 15:56 vpcs.go
-rw-r--r--  1 sammy  staff   4091 Apr  5 15:56 vpcs_test.go

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

Шаг 6 — Создание простой программы

Вы настроили рабочее пространство Go и теперь можете создать простую программу “Hello, World!” Так вы убедитесь, что ваше рабочее пространство работает, и сможете лучше познакомиться с Go.

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

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

$ nano hello.go

Когда текстовый файл откроется в терминале, введите код программы:

package main

import "fmt"

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

Для выхода из nano нажмите клавиши control и х, а когда система предложит вам сохранить файл, нажмите клавишу y.

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

После выхода из nano и возврата в оболочку запустите программу:

$ go run hello.go

Созданная программа hello.go выведет на терминале следующее:

Output

Hello, World!

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