Установка Golang на сервер

Про язык программирования Golang можно услышать много прекрасного и интересного. От себя добавлю лично — Go!

Из Википедии:

Go (часто также Golang) — компилируемый многопоточный язык программирования, разработанный внутри компании Google. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон, занимавшиеся до этого проектом разработки операционной системы Inferno. Официально язык был представлен в ноябре 2009 года. На данный момент его поддержка осуществляется для операционных систем FreeBSD, OpenBSD, Linux, Mac OS X, Windows, начиная с версии 1.3 в язык Go включена экспериментальная поддержка DragonFly BSD, Plan 9 и Solaris, начиная с версии 1.4 — поддержка платформы Android.

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

Для этого выполняем в ssh консоли следующую команду:

uname -a

Вывод:

$ uname -a
Linux HP-Z420-Workstation 4.4.0-112-generic #135-Ubuntu SMP Fri Jan 19 11:48:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Эти строки нам говорят, что установлена версия ОС linux ubuntu с архитектурой x86_64 — она же amd64, т.е. у нас 64-х битная архитектура сервера и ОС.

Вывод для CentOS:

$ uname -a
Linux bus.localdomain 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Где «el7» нам говорят что установлена enterprice linux версии 7 (она же и CentOS) с архитектурой x86_64

Вывод для FreeBSD:

$ uname -a
FreeBSD ws.localdomain 8.3-STABLE FreeBSD 8.3-STABLE #0: Thu May  3 19:58:01 UTC 2012     root@vm1.localdomain:/usr/obj/usr/src/sys/MYKERNEL  i386

Тут у нас интересная ситуация, видно что установлена ОС FreeBSD версии 8.3, но признак «i386» нам говорит, что архитектура сервера и операционки 32-х битная.

Качаем исходники с официального сайта — https://golang.org/dl/
Вот по этой ссылке для всех версий linux c архитектурой x86_64:

Для FreeBSD будет другая ссылка, т.к. у нас 32-х битная архитектура ОС:

На момент написания поста, была версия Go 1.9.3.

В консоли, переходим в домашнюю директорию и качаем архив со свежим Go!:

cd ~ && curl -O https://dl.google.com/go/go1.9.3.linux-amd64.tar.gz

Вывод:

$ cd ~ && curl -O https://dl.google.com/go/go1.9.3.linux-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  100M  100  100M    0     0  2392k      0  0:00:43  0:00:43 --:--:-- 1714k

Для FreeBSD будем использовать архив по этой ссылке: https://dl.google.com/go/go1.9.3.freebsd-386.tar.gz
Далее для фряхи вместо версии файла «go1.9.3.linux-amd64.tar.gz» везде нужно использовать файл «go1.9.3.freebsd-386.tar.gz«.

Разархивируем в директорию «/usr/local» скачанный архив:

tar -C /usr/local -xzf go1.9.3.linux-amd64.tar.gz

Удостоверимся что все удачно проделали:

ls -la /usr/local/go

Вывод:

$ ls -la /usr/local/go
total 142
drwxr-xr-x  11 root  wheel    512 Jan 23 00:15 .
drwxr-xr-x  16 root  wheel    512 Jan 24 15:20 ..
-rw-r--r--   1 root  wheel  41258 Jan 23 00:08 AUTHORS
-rw-r--r--   1 root  wheel   1576 Jan 23 00:08 CONTRIBUTING.md
-rw-r--r--   1 root  wheel  55577 Jan 23 00:08 CONTRIBUTORS
-rw-r--r--   1 root  wheel   1479 Jan 23 00:08 LICENSE
-rw-r--r--   1 root  wheel   1303 Jan 23 00:08 PATENTS
-rw-r--r--   1 root  wheel   1601 Jan 23 00:08 README.md
-rw-r--r--   1 root  wheel      7 Jan 23 00:08 VERSION
drwxr-xr-x   2 root  wheel    512 Jan 23 00:08 api
drwxr-xr-x   2 root  wheel    512 Jan 23 00:15 bin
drwxr-xr-x   4 root  wheel    512 Jan 23 00:15 blog
drwxr-xr-x   9 root  wheel   1024 Jan 23 00:08 doc
-rw-r--r--   1 root  wheel   5686 Jan 23 00:08 favicon.ico
drwxr-xr-x   3 root  wheel    512 Jan 23 00:08 lib
drwxr-xr-x  14 root  wheel    512 Jan 23 00:15 misc
drwxr-xr-x   7 root  wheel    512 Jan 23 00:15 pkg
-rw-r--r--   1 root  wheel     26 Jan 23 00:08 robots.txt
drwxr-xr-x  46 root  wheel   1536 Jan 23 00:08 src
drwxr-xr-x  19 root  wheel   6144 Jan 23 00:15 test

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

Для этого нам нужно внести правки в файл профиля общего назначения для всех пользователей, куда и пропишем пути GOROOT и GOPATH.

Открываем файл общего профиля:

nano /etc/profile

И пишем в его конец следующие строки:

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

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

Смотрим версию установленного Go:

go version

Вывод:

$ go version
go version go1.9.3 linux/amd64

Теперь у нас имеется установленная свежая версия Go-Lang на Linux серввере.
Удачных вам начинаний с Go! 😉

Ссылки

Оставить ответ