1 Что вы узнаете из этой главы?
- Как установить Go на свой компьютер.
- Как вычислить контрольную сумму (SHA 256).
2 охваченных технических концепции
- Компьютерная архитектура
- Хэш-функция
- Сжатие/декомпрессия
- Профиль оболочки
- Путь
3 Введение
Чтобы писать программы на Go, вам нужен редактор. Чтобы тестировать, документировать, компилировать и форматировать ваши программы Go, вам потребуется установить двоичные файлы цепочки инструментов Go.
Эта глава проведет вас через процесс установки.
4 Компьютерная архитектура
В следующих разделах вам необходимо знать архитектуру вашего компьютера . Этот технический термин иногда сбивает с толку новичков. Что именно?
Компьютеры бывают разных форм, цен и форм. Многие потребители обращают внимание на марку компьютеров и их высокие характеристики (такие как оперативная память, объем памяти на жестком диске). Маркетинг иногда упускает из виду вопрос о процессоре, но это фундаментальная часть компьютера. Процессор также называют CPU ( C entral Processing Unit ) .
ЦП отвечает за выполнение системных инструкций, а также программ . ЦП — это общий термин. Доступны различные типы процессоров.
Программы используют набор предопределенных инструкций для общения с машиной. Мы называем этот список заказов набором инструкций. Некоторые процессоры используют одни и те же наборы инструкций. У других совсем другие. Понятие архитектуры охватывает набор инструкций, физическую организацию и компьютерную реализацию.
Теперь вы понимаете, почему это понятие важно на машинном уровне. Набор инструментов Go — это набор программ, которые мы будем использовать для создания наших программ.
- Эти программы написаны на Go и скомпилированы.
- Команда Go предоставляет разные версии набора инструментов для каждой ОС и поддерживаемой архитектуры.
Go имеет минимальные требования к системе и ОС.
Вы можете проверить их на этой веб-странице:
https://github.com/golang/go/wiki/MinimumRequirements.
Страница часто обновляется.
5 Перейти к установке набора инструментов
Чтобы начать разработку программы Go, вы должны сначала установить Go на свой компьютер. Чтобы установить его, вам нужно будет скачать файл. Процедура установки немного отличается в зависимости от вашей ОС (операционной системы). Просто следуйте инструкциям, соответствующим вашей ОС.
Первый шаг (который не зависит от вашей ОС) — перейти на официальную страницу загрузки: https://golang.org/dl/ . Кстати, golang.org — официальный сайт Go. Мы настоятельно рекомендуем вам загружать Go только с этого URL-адреса.
В этом разделе мы рассмотрим Linux, macOS и Windows. Обратите внимание, что go также доступен для FreeBSD.
5.1 Линукс
5.1.1 Определите свою архитектуру
Сначала вы должны определить архитектуру вашего компьютера. Это позволит вам выбрать правильный файл для загрузки.
Откройте терминал и введите следующую команду:
$ uname -p
Uname — это программа, которая отображает характеристики вашей системы. Флаг -p будет отображать «напечатать имя архитектуры процессора машины».
Версии Golang Linux доступны для следующих архитектур:
- x86
- x86-64
- ARMv6
- ARMv8
- ppc64le
- с390х
5.1.2 Скачать архив
Когда вы знаете свою архитектуру, теперь вы можете загрузить соответствующую сжатую папку на веб-сайте Go:
Просто нажмите на синюю ссылку, и загрузка начнется.
В следующих разделах мы установим версию 1.12.8 для архитектуры x86-64. Инструкции одинаковы для других архитектур и других версий. Изменится только название архива.
5.1.3 Проверка хэша архива
Этот шаг настоятельно рекомендуется. Цель состоит в том, чтобы проверить, что у вас нет поврежденной версии архива. Для этого откройте терминал и введите:
$ cd /where/you/have/downloaded/the/file $ sha256sum go1.12.8.linux-amd64.tar.gz
Первая команда использует cd (изменить каталог), чтобы перейти в каталог, в который был помещен загруженный файл. Например, если файл находится в /home/max/, вам нужно выполнить:
$ cd /home/max
Следующая команда вычислит хэш SHA256 (который является криптографической хэш-функцией) файла go1.12.8.linux-amd64.tar.gz.
Криптографическая хеш-функция : функция, которая принимает в качестве входных данных данные переменного размера (файл, слово, предложение) и выводит большой двоичный объект данных фиксированного размера. Имея вывод, почти невозможно получить ввод функции. Результат называется «хеш» или «дайджест сообщения». Здесь мы используем его, чтобы убедиться, что файл не был изменен на пути к нашему компьютеру. Для этого мы сравниваем хэш, вычисленный на нашем компьютере, с хешем, предоставленным на веб-сайте Go. Если оба равны, изменения не было.
Когда sha256sum будет выполнен, вы увидите на своем экране набор символов, который вам нужно сравнить с хэшем, отображаемым на веб-сайте. Если они не идентичны, что-то пошло не так, не используйте загруженный файл. Если хэш, который вы вычислили, и хеш, отображаемый на веб-сайте Go, совпадают, все готово.
5.1.4 Распаковать архив
Архив сжат с помощью gzip (сжат с помощью gzip , его часто называют tarball ). Чтобы сдуть его, у вас есть два варианта:
- Воспользуйтесь графическим интерфейсом (если он у вас есть): дважды щелкните по архиву, и откроется окно. Следуй инструкциям. Вы должны извлечь и выкачать файлы в /usr/local
- Используйте терминал.
Мы возьмем вариант 2.
Откройте терминал и введите команду:
$ sudo tar -C /usr/local -xzf go1.12.8.linux-amd64.tar.gz
Мы будем использовать tar приложения (в режиме sudo)
- -C /usr/local : означает, что мы изменим каталог выполнения на /usr/local
- -xzf go1.12.8.linux-amd64.tar.gz: означает, что мы хотим извлечь (x) архив go1.12.8.linux-amd64.tar.gz , сжатый с помощью gzip.
5.1.5 Установите свой ПУТЬ
Давайте посмотрим на древовидное представление папки /usr/local/go:
У нас есть восемь папок: API, bin, doc, lib, misc, pkg, src и тесты.
Папка bin содержит два исполняемых файла:
- go : это основной исполняемый файл
- gofmt : эта программа отформатирует ваши исходные файлы в соответствии с языковыми соглашениями.
Если вы находитесь в каталоге bin, вы можете запустить go. Попробуйте эту команду:
$ ./go version
Он напечатает версию go. Но это не удовлетворяет. Мы хотим иметь возможность открывать терминал и везде запускать go –version. Для этого нам нужно добавить эту папку в PATH.
PATH : переменная среды с именем PATH, которая содержит список каталогов, в которых оболочки будут искать исполняемые файлы, когда пользователь вводит команду. Вы часто будете слышать «добавить этот каталог в путь». Это выражение означает, что вы должны добавить адрес каталога к списку каталогов в переменной окружения PATH.
Следующая команда добавит « /usr/local/go/bin » к переменной PATH:
$ export PATH=$PATH:/usr/local/go/bin
Мы устанавливаем переменную PATH (командой экспорта) с уже содержащимся в ней значением (обозначаемым $PATH ) и добавляем к нему символы «:/usr/local/go/bin». Если вы держите тот же терминал открытым и набираете:
$ go version
вы увидите отображаемую версию Go.
Измените свой профиль оболочки
Теперь, если вы закроете свой терминал и откроете другой, вы заметите, что он больше не работает. Переменная среды PATH была изменена только для вашего текущего сеанса. Когда вы открываете новый терминал, вы создаете новый сеанс. Изменения, внесенные в PATH, распространяются на новые сеансы.
Чтобы изменить переменную PATH для каждого нового сеанса, вы должны изменить свой профиль оболочки. Вам нужно добавить «export PATH=$PATH:/usr/local/go/bin» в начале профиля.
- Если вы используете bash, файл для изменения ~/.bashrc . Он запускается всякий раз, когда начинается сеанс
- Если вы используете zsh, файл для изменения ~/.zshrc . Он запускается всякий раз, когда начинается сеанс
- Для других оболочек обратитесь к предоставленной документации, но она должна работать так же.
При изменении .bashrc или .zshrc изменение не применяется немедленно. Вам нужно начать новую сессию, чтобы увидеть результат.
Если вы не хотите начинать новый сеанс, вы можете ввести эту команду и нажать Enter:
$ source ~/.bashrc
Протестируйте установку
Откройте терминал и запросите у Go текущую версию установки:
$ go version
Должен появиться номер версии!
5.2 macОС
У вас есть два основных варианта установки go:
- Используйте установщик
- Загрузите бинарный файл и установите его самостоятельно.
Третий вариант — скомпилировать go из исходников. Для простоты мы покажем вам, как использовать программу установки.
5.2.1 Загрузите программу установки
Перейдите на веб-сайт https://golang.org/dl/ и загрузите соответствующий установщик для нужной версии. На рисунке 1 мы выделили строку, соответствующую версии установщика 1.12.8 для macOS.
5.2.2 Проверка хэша установщика
Чтобы проверить целостность загруженного файла, мы вычислим криптографический хэш SHA256. Для этого откройте окно терминала. Затем введите команды:
$ cd Downloads $ shasum -a 256 go1.12.8.darwin-amd64.pkg SHA_SUM go1.12.8.darwin-amd64.pkg
Первая команда изменит текущий каталог (cd) на /Downloads. Затем воспользуемся инструментом shasum . Мы добавляем флаг a, чтобы сказать, что мы хотим использовать хеш-функцию SHA256. Результат будет состоять из криптографического хэша, за которым следует имя хешированного файла.
Чтобы проверить хэш, перейдите на страницу загрузки и проверьте столбец контрольной суммы SHA256. Вам нужно убедиться, что хэш, который вы получаете, совпадает с тем, который был предоставлен командой go.
Замените SHA_SUM значением, которое вы скопировали на сайте.
На рисунке 2 видно, что у нас есть равенство между хэшами.
Хэши, которые не соответствуют, означают, что файл, который вы скачали, был каким-то образом изменен. Вы не должны использовать его.
5.2.3 Запустите программу установки
Дважды щелкните загруженный файл. Он автоматически запустит мастер установки. Следуйте процессу установки. Во время установки вас попросят ввести пароль. Установщик поместит файлы, необходимые для запуска Go, в каталог /usr/local/go .
Измените свой профиль оболочки
Откройте терминал и введите:
$ go version
Если отображается версия go, значит, все готово! В противном случае вам нужно будет добавить Go в переменную окружения PATH.
Вы можете следовать инструкциям в предыдущем разделе. Они одинаковы для macOS.
5.3 Windows
В этом разделе мы покажем вам, как установить go с помощью установщика .msi . Это самый простой способ. Но сначала взгляните на конкретные требования к операционным системам Windows: https://github.com/golang/go/wiki/MinimumRequirements#windows.
5.3.1 Определите свою архитектуру
Go для Windows доступен для двух архитектур:
- x86, что соответствует 32-битным системам
- x86-64, что соответствует 64-битным системам
Чтобы узнать, является ли ваша система 32-битной или 64-битной, вам нужно будет проверить свойства системы:
- Для Windows 7
Нажмите кнопку «Пуск»
Щелкните правой кнопкой мыши Компьютер
Затем нажмите Свойства
В окне отобразится тип системы. - Для Windows 10 и Windows 8.1
Нажмите кнопку «Пуск»
Затем перейдите в «Настройки» , затем «Система» и «О программе» .
В окне отобразится тип системы.
5.3.2 Загрузите программу установки
Теперь, когда вы знаете свою архитектуру, вы можете скачать соответствующий установщик на официальном сайте Go:
5.3.3 Проверка хэша установщика
После того, как вы загрузили правильный установщик, вы должны проверить его целостность. Для этого мы вычислим хэш SHA256 загруженного файла.
В Windows есть встроенная программа certutil.exe. Эта программа является частью «Службы сертификатов». Эта программа находится в C:\Windows\System32\certutil.exe . Если не найдете, предлагаю запустить поиск в папке Windows.
Чтобы вычислить хэш SHA256, откройте терминал и введите следующие команды.
$ cd C:\users\max\downloads $ certutil -hashfile go1.12.8.windows-amd64.msi SHA256 SHA256 hash of file go1.12.8.windows-amd64.msi:
98 39 25 49 90 de dc 56 47 bf 38 61 1f 7c 1a 7a fc 65 f7 fd 6a af f9 77 e0 5b 17 d4 ec 21 fe a6 CertUtil: -hash file command completed successfully.
Затем вы должны сравнить хэш, вычисленный certutil, с хешем, отображаемым на веб-сайте golang.org. Строка, выводимая certutil, содержит пробелы между каждым шестнадцатеричным числом. Вы должны скопировать строку и удалить пробелы.
Если обе строки равны, вы можете перейти к следующему шагу. Если нет, вы получите поврежденную версию. Не используйте его.
5.3.4 Запустите программу установки
Дважды щелкните установщик и следуйте инструкциям. В конце процесса установки протестируйте установку. Откройте терминал и введите следующую команду:
$ go version
Если вы видите распечатанную версию, вы завершили установку.
6 Обзор переменных окружения Go
Используйте переменные среды для его настройки. В этом разделе мы подробно расскажем о некоторых из них:
- GOBIN: По умолчанию Go помещает скомпилированные программы в $GOPATH/bin. Если вы хотите переопределить это поведение, вы можете установить эту переменную.
- GOROOT: абсолютный путь, по которому установлен дистрибутив Go (для пользователей Linux и macOS по умолчанию это /usr/local/go ).
- GOHOSTOS: это операционная система набора инструментов Go.
- GOHOSTARCH: это системная архитектура двоичных файлов цепочки инструментов Go.
Чтобы распечатать все переменные среды Go, вы можете использовать эту команду:
$ go env
Используйте эту команду, если у вас возникли проблемы с настройками Go. Вот вывод команды:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/maximilienandile/Library/Caches/go-build" GOENV="/Users/maximilienandile/Library/Application Support/go/env" GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/maximilienandile/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/maximilienandile/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.16"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/lm/9l2tk4811x32rmw4407f9h3m0000gn/T/go-build744222834=/tmp/go-build -gno-record-gcc-switches -fno-common"
7 Распространенные ошибки
В этом разделе вы можете найти список распространенных проблем, возникающих при установке Go.
7.1 Ошибка «команда не найдена» или «не распознана», когда я хочу запустить бинарный файл go
7.1.1 Симптом
При использовании оболочки zsh (в Linux или Mac):
$ go version zsh: command not found: go
При использовании оболочки bash (в Linux или Mac):
$ go version bash: command not found: go
Для Windows:
$ go version
'go' is not recognized as an internal or external command, operable program Or batch file.
7.1.2 Объяснение
Это сообщение об ошибке означает, что исполняемый файл «go» не найден вашей оболочкой. Когда вы открываете терминал, оболочка загружает переменную окружения PATH (см. определение в предыдущем разделе). Эта переменная содержит список адресов каталогов в файловой системе. Оболочка будет искать в этих каталогах исполняемый файл с именем «go». Он может быть найден. Если исполняемый файл с именем «go» не найден, будет выведена ошибка.
7.1.3 Решения
- Убедитесь, что папка, содержащая двоичный файл «go» (go/bin), добавлена в ваш PATH.
Для пользователей Linux и Mac:
Откройте терминал и введите «echo $PATH»
Убедитесь, что каталог go/bin находится в результатах вывода.
$ echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin
Здесь вы можете видеть, что /usr/local/go/bin находится в пути
Если это не так, добавьте /usr/local/go/bin в путь (следуйте инструкциям, приведенным в предыдущем разделе)
Для пользователей Windows:
C:> эхо %PATH% C:;C:;C:
Здесь установка правильная. Папка bin находится в пути
Если это не так, добавьте его в PATH. Для этого:
откройте «Система» > «Дополнительные параметры системы».
затем нажмите на кнопку Environment Variables . Должно появиться окно, содержащее все переменные среды.
Нажмите «ПУТЬ»
Добавьте точку с запятой, а затем «C:\Go\bin»
Нажмите «ОК», затем «ОК».
Закройте окно терминала и откройте другое. Вы должны быть хорошими. - Если предыдущее решение не сработало, вы должны убедиться, что двоичный файл «go» эффективно присутствует там, где вы думаете.
Для пользователей Linux и Mac:Перейдите в /usr/local/go/bin и убедитесь, что у вас есть файл с именем «go».
Для пользователей Windows:Перейдите в C:\Go\bin и убедитесь, что у вас есть файл с именем «go».
Когда, например, папка Go (или go) даже не существует, вам нужно будет ее переустановить. Может быть, вы поместили установленный двоичный файл в другой каталог?
7.2 Ошибка «Ошибка формата exec»
7.2.1 Симптом
Двоичный файл go найден в вашей системе, но когда вы запускаете команду Go, вы получаете сообщение об ошибке:
$ go version zsh: exec format error: go
7.2.2 Объяснение
Вероятно, вы загрузили версию, которая не соответствует вашей системе. Например, вы загружаете бинарный файл для Linux и запускаете его на своем Mac.
7.2.3 Решение
Загрузите версию, соответствующую вашей операционной системе и архитектуре вашего компьютера.