Про язык программирования 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! 😉
Ссылки
- https://golang.org/dl/ — Downloads — The Go Programming Language
- https://golang.org/doc/install — Getting Started — The Go Programming Language