Tutorial

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

Published on January 24, 2020
Русский
Установка Go и настройка локальной среды программирования в macOS

Введение

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

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

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

Предварительные требования

Вам потребуется компьютер macOS с административным доступом и подключением к Интернету.

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

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

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

Терминал macOS

Существует множество разнообразных команд терминала, с помощью которых вы можете выполнять множество различных задач. Статья [Введение в терминал Linux] (https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal) поможет вам лучше сориентироваться в работе с терминалом Linux, который похож на терминал macOS.

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

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

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

  1. xcode-select -p

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

Output
/Library/Developer/CommandLineTools

Если вы получили сообщение об ошибке, выполните установку [Xcode через App Store] (https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ign-mpt=uo%3D2) в браузере, используя параметры по умолчанию.

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

  1. xcode-select --install

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

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

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

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

  1. /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:

  1. nano ~/.bash_profile

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

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

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

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

  1. source ~/.bash_profile

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

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

  1. brew doctor

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

Output
Your system is ready to brew.

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

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

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

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

  1. brew search golang

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

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

Output
golang golang-migrate

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

  1. brew install golang

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

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

  1. go version

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

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

  1. brew update
  2. 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 может содержать несколько репозиториев контроля версий (например, Git, Mercurial и 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:

  1. 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 или другого предпочитаемого текстового редактора:

  1. 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 в любом месте в вашей системе.

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

  1. . ~/.bash_profile

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

  1. 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

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

  1. go get github.com/digitalocean/godo

Мы можем увидеть успешную загрузку пакета godo посредством вывода директории:

  1. 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 или другой текстовый редактор командной строки и создайте новый файл:

  1. nano hello.go

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

package main

import "fmt"

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

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

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

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

  1. go run hello.go

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

Output
Hello, World!

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

Заключение

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Default avatar

Senior Technical Editor

Editor at DigitalOcean, fiction writer and podcaster elsewhere, always searching for the next good nautical pun!


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel