Как установить Go 1.7 на CentOS 7

Вступление

Go, часто называемыйgolang, - это язык программирования с открытым исходным кодом, разработанный Google. Он использует минималистский подход к разработке и позволяет легко создавать простое, надежное и эффективное программное обеспечение. Из этого туториала Вы узнаете, как загрузить и установить Go 1.7, а также как скомпилировать и выполнить простую программу «Hello, World!» На сервере CentOS 7.

Предпосылки

Прежде чем следовать этому руководству, убедитесь, что у вас есть обычный пользователь без полномочий root с привилегиямиsudo. Вы можете узнать больше о том, как настроить пользователя с этими привилегиями из нашего руководства,How To Create a Sudo User on CentOS.

[[step-1 -–- download-go]] == Шаг 1. Скачивание Go

По состоянию на сентябрь 2016 года пакетgolang в репозиториях по умолчанию для CentOS устарел. В результате мы вручную загрузим пакет прямо изGo website. Обязательно скопируйте ссылку на последнюю версию, совместимую с 64-битной архитектурой.

Начните с перемещения в доступный для записи каталог:

cd /tmp

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

curl -LO https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz

Несмотря на то, что архив был получен из подлинного источника, рекомендуется проверять подлинность и целостность элементов, загружаемых из Интернета. Этот метод проверки удостоверяет, что файл не был подделан, поврежден или поврежден в процессе загрузки. Командаshasum с флагом-a 256 создает уникальный 256-битный хэш:

shasum -a 256 go1.7*.tar.gz
Output702ad90f705365227e902b42d91dd1a40e48ca7f67a2f4b2fd052aaa4295cd95  go1.7.linux-amd64.tar.gz

Сравните хэш в вашем выводе со значением контрольной суммы на Godownload page. Если они совпадают, то можно с уверенностью сделать вывод, что загрузка является законной.

После загрузки Go и проверки целостности файла приступим к установке.

[[step-2 -–- install-go]] == Шаг 2 - Установка Go

Установка Go состоит из распаковки архива в каталог/usr/local. Использование командыtar с флагом-C сохраняет содержимое в указанный каталог. Флаг-x выполняет функцию извлечения,-v производит подробный вывод,-z фильтрует архив с помощью утилиты сжатияgzip, а-f сообщает ему указанную имя файла для выполнения действий:

sudo tar -C /usr/local -xvzf go1.7.linux-amd64.tar.gz

[.note] #Note: Издатель официально рекомендует поместить Go в каталог/usr/local. Установка в другом месте не влияет на удобство использования, но пользовательский путь должен быть определен в переменной среды GoGOROOT. На следующем шаге обсуждается работа с переменными окружения.
#

Затем в домашнем каталоге пользователя создайте рабочее пространство Go с тремя дочерними каталогами:bin,src иpkg. Каталогbin будет содержать исполняемые программы, скомпилированные из удобочитаемых исходных файлов в каталогеsrc. Несмотря на то, что мы не будем использовать каталогpkg в этом руководстве, мы все же рекомендуем настроить его, потому что это полезно при создании более сложных программ. В каталогеpkg хранятся объекты пакетов, которые представляют собой повторно используемый код, совместно используемый программами.

Мы назовем каталог нашей рабочей областиprojects, но вы можете называть его как угодно. Флаг-p для командыmkdir создаст соответствующее дерево каталогов.

mkdir -p ~/projects/{bin,pkg,src}

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

[[step-3 -–- setting-paths-for-go]] == Шаг 3. Установка путей для Go

Чтобы выполнить Go, как и любую другую команду, нам нужно добавить место установки в переменную$PATH. Go был установлен в системный каталог, поэтому мы установим переменную окружения глобально.

Создайте скриптpath.sh в каталоге/etc/profile.d с помощью редактораvi:

sudo vi /etc/profile.d/path.sh

Добавьте в файл следующее, сохраните и выйдите:

/etc/profile.d/path.sh

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

[.warning] #Warning: Если Go был установлен в другом месте, измените путь соответствующим образом.
#

Кроме того, определите переменные среды GoGOPATH иGOBIN Go в пользовательском файле.bash_profile, чтобы они указывали на недавно созданное рабочее пространство. ПеременнаяGOPATH сообщает Go расположение ваших исходных файлов, а переменнаяGOBIN указывает ему, где создавать скомпилированные двоичные файлы.

Откройте файл.bash_profile:

vi ~/.bash_profile

Добавьте следующее в конец файла, сохраните и выйдите:

~/.bash_profile

. . .
export GOBIN="$HOME/projects/bin"
export GOPATH="$HOME/projects/src"

[.предупреждение]##

Warning: Как отмечалось на шаге 2, если Go не был установлен в каталоге/usr/local, тогда также определите переменнуюGOROOT.

~/.bash_profile

. . .
export GOROOT="/path/to/go"


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

source /etc/profile && source ~/.bash_profile

Имея ядро ​​Go, давайте подтвердим, что наша установка работает, составив короткую программу.

[[step-4 -–- create-a-program]] == Шаг 4 - Создание программы

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

Для начала создайте новый файл.go:

vi ~/projects/src/hello.go

В приведенном ниже коде используется основной пакет Go, импортируется компонент форматированного содержимого ввода-вывода и задается новая функция для печати строкиHello, World!. Добавьте следующее в файл:

~/projects/hello.go

package main

import "fmt"

func main() {
    fmt.Printf("Hello, World!\n")
}

Затем сохраните и выйдите из файла.

Затем скомпилируйте исходный файлhello.go с помощью командыgo install:

go install $GOPATH/hello.go

Теперь мы готовы запустить нашу программу:

$GOBIN/hello

Программаhello.go должна выдать сообщениеHello, World!, подтверждающее успешную установку Go.

Заключение

Простая программа «Hello, World!» Установила, что у вас есть среда разработки Go. Типичное приложение будет использовать библиотеки и удаленные пакеты. Чтобы узнать больше о работе с этими дополнительными компонентами, ознакомьтесь с официальной документациейHow to Write Go Code.

Related