CentOS: Подключение репозитория EPEL

Полностью EPEL репозиторий называется Extra Packages for Enterprise Linux.

Репозиторий это хранилище пакетов для операционной системы CentOS. Существуют repository от разработчика системы, их называют официальные. Набор rpm пакетов там обычно ограничен и версии не самые свежие. Для установки дополнительного софта используют сторонние репозитории.

Управлением пакетами и репозиториями в CentOS занимается утилита yum. Ее конфигурационный файл находится в /etc/yum.conf. Этот файл содержит секцию [main], в которой указываются глобальные настройки программы. Так же он может содержать одну или несколько секций [repository], в которой хранятся настройки репозиториев. Тем не менее, рекомендуется информацию о репозиториях хранить в каталоге /etc/yum.repos.d/ в специальных файлах .repo.

По этому добавить репозиторий в CentOS можно тремя разными способами:
    1. Добавив секцию [repository] в файл /etc/yum.conf
    2. Создав новый .repo файл в директории /etc/yum.repos.d
    3. Установив с помощью yum соответствующий rpm пакет

Первый способ использовать не рекомендуется самими разработчиками. Наиболее быстрый и удобный третий способ. Если rpm пакета для добавления репозитория не существует, то используется второй способ.

После добавления новых репозиториев в систему, никаких дополнительных действий производить не требуется. В CentOS кэш пакетов обновляется каждый раз, когда производится какое-то действие с помощью yum. Например при выводе списка доступных репозиториев.

# yum -y install epel-release
# yum repolist

CentOS: Goland

Страница загрузки

# cd ~
# curl -LO https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
# tar -C /usr/local -xvzf go1.8.linux-amd64.tar.gz
# mkdir -p ~/go/{bin,pkg,src}
# echo 'export PATH=$PATH:/usr/local/go/bin/' >> /etc/profile.d/path.sh
# echo 'export GOROOT=/usr/local/go' >> ~/.bash_profile
# echo 'export GOPATH=$HOME/go' >> ~/.bash_profile
# echo 'export GOBIN=$HOME/go/bin' >> ~/.bash_profile    
# source /etc/profile && source ~/.bash_profile
# go version
go version go1.8 linux/amd64

MSYS2: Часть 2 "Golang"

Запускаем MSYS2 MSYS:

$ pacman -S mingw-w64-i686-go
$ pacman -S mingw-w64-x86_64-go

Проверяем:

$ go version
bash: go: команда не найдена

Это объяснимо ведь мы ставили пакеты для соответствующих окружений.

Запускаем MSYS2 MinGW 32-bit:

$ go version
go version go1.8 windows/386

Запускаем MSYS2 MinGW 64-bit:

$ go version
go version go1.8 windows/amd64

Golang установлен в соответствии с разрядностью окружений MSYS2. Далее будем работать в окружении MSYS2 MinGW 64-bit:

$ go env
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\amigachev\go
set GORACE=
set GOROOT=C:\Wtk\dev\msys\mingw64\lib\go
set GOTOOLDIR=C:\Wtk\dev\msys\mingw64\lib\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Wtk\dev\msys\tmp\go-build226043647=/tmp/go-build -gno-record-gcc-switches
set CXX=g++
set CGO_ENABLED=1
set PKG_CONFIG=pkg-config
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2

Видно, что одна ОЧЕНЬ ВАЖНАЯ переменная GOPATH задана неверно - в недоступной для MSYS директории (за пределами директории в которую была произведена установка MSYS). Ее необходимо переопределить:

$ mkdir ~/go
$ echo "export GOPATH=~/go" >> ~/.profile
$ echo "export GOPATH=~/go" >> ~/.bash_profile

Перезапустим MSYS2 MinGW 64-bit и проверим:

$ go env GOPATH
C:/Wtk/dev/msys/home/amigachev/go

Теперь все верно.

Для полной проверки попробуем получить исполняемый файл консольного текстового редактора написанного на чистом Go - micro:

$ go get -d github.com/zyedidia/micro/
$ cd $GOPATH/src/github.com/zyedidia/micro
$ make install

Получим полностью рабочий исполняемый файл micro.exe (в директории $GOPATH/bin). Под MSYS он исполняться не будет из-за несовместимости терминалов, а вот под Windows x64 будет.

GitHub – bbslipers

bbslipers