Установка и использование LinuxBrew на сервере Linux

LinuxBrew – это ответвление популярного менеджера пакетов Mac OS X по имени HomeBrew для систем Linux.

LinuxBrew – программное обеспечение для управления пакетами, позволяющее устанавливать пакеты из исходников на основе стандартных инструментов управления пакетами (apt/deb в системах  Debian/Ubuntu yum/rpm в CentOS/RedHat).

Зачем нужен LinuxBrew?

Первоначально HomeBrew был разработан для системы Mac OS X (которая не имеет стандартной системы управления пакетами с открытым исходным кодом). Впоследствии HomeBrew вытеснил другие инструменты управления пакетами, такие как MacPorts и Fink. По сути, LinuxBrew – это HomeBrew, адаптированный для Linux.

Большинство дистрибутивов Linux оборудовано хорошей системой управления пакетами (apt, yum, и т.п.), однако:

  • Репозитории, как правило, содержат несколько устаревшие версии пакетов;
  • Многие пакеты с открытым исходным кодом не доступны в стандартных репозиториях (например, популярные инструменты биоинформатики).

В дополнение к пакетам из стандартного репозитория дистрибутива LinuxBrew предоставляет репозиторий наборов команд для установки программного обеспечения (пакеты устанавливаются из исходников и компилируются на локальной машине).

LinuxBrew позволяет без труда собрать свой собственный репозиторий (т.е. список открытых пакетов с учетом потребностей пользователя).

LinuxBrew устанавливает программное обеспечение в указанный пользователем каталог (не глобально), не требуя привилегий sudo.

LinuxBrew (и HomeBrew) легко взаимодействует с GitHub, что позволяет использовать установочные наборы команд коллективно.

Как видите, репозитории LinuxBrew – это быстрый метод установки определённых пакетов и версий на стандартную машину Linux.

Как работает LinuxBrew?

Проще говоря, LinuxBrew загружает файл tar.gz и запускает команду

./configure && make && make install

или же другую команду, которая установит пакет.

LinuxBrew Formula – это Ruby-скрипт, который определяет местонахождение файла tar.gz, способ сборки и способ установки пакета.

Файл formula может быть так же прост, как hmmer.rb:

class Hmmer < Formula
homepage 'http://hmmer.janelia.org/'
url 'http://selab.janelia.org/software/hmmer3/3.1b1/hmmer-3.1b1.tar.gz'
def install
system "./configure", "--prefix=#{prefix}"
system "make"
system "make install"
end
end

или так же сложен, как emacs.rb.

После создания файла formula установка пакета сводится к одной команде:

$ brew install FORMULA

Подготовка системы к установке LinuxBrew

Подготовка Debian/Ubuntu

Чтобы подготовить окружение Debian/Ubuntu к установке LinuxBrew, запустите команды:

$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo sudo apt-get install -y build-essential make cmake scons curl git
ruby autoconf automake autoconf-archive
gettext libtool flex bison
libbz2-dev libcurl4-openssl-dev
libexpat-dev libncurses-dev

Подготовка CentOS/RedHat

В системах на основе CentOS/RedHat запустите:

$ sudo yum update -y
$ sudo yum groupinstall -y "Development Tools"
$ sudo yum install -y
autoconf automake19 libtool gettext
git scons cmake flex bison
libcurl-devel curl
ncurses-devel ruby bzip2-devel expat-devel

Установка LinuxBrew

Для установки LinuxBrew нужно просто клонировать репозиторий программы.

1: Клонирование LinuxBrew

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

$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew

Примечание: Обычный каталог тоже подойдёт.

2: Обновление переменных окружения

Затем нужно добавить LinuxBrew в переменные среды пользователя.

В конец файла ~/.bashrc внесите такие строки:

# Until LinuxBrew is fixed, the following is required.
# See: https://github.com/Homebrew/linuxbrew/issues/47
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH
## Setup linux brew
export LINUXBREWHOME=$HOME/.linuxbrew
export PATH=$LINUXBREWHOME/bin:$PATH
export MANPATH=$LINUXBREWHOME/man:$MANPATH
export PKG_CONFIG_PATH=$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH

Примечание: При установке LinuxBrew в другой каталог измените путь в LINUXBREWHOME.

3: Тестирование установки

Чтобы убедиться, что установка прошла успешно, выйдите из системы и войдите снова. Оболочка обновится, и будет использовать новые настройки.

Чтобы проверить эти настройки, используйте:

$ which brew
/home/ubuntu/.linuxbrew/bin/brew
$ echo $PKG_CONFIG_PATH
/home/ubuntu/.linuxbrew/lib64/pkgconfig:/home/ubuntu/.linuxbrew/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:

Установка пакетов при помощи LinuxBrew

Поиск пакетов

Чтобы узнать, какие пакеты доступны, введите brew search.

Чтобы найти пакет по имени, введите brew search+имя_пакета; например, чтобы найти пакеты, в названии которых содержится слово WORD, нужно ввести:

brew search WORD

Еще один пример поиска пакета:

$ brew search xml
blahtexml       libnxml   libxml2     xml-coreutils   xml2        xmlrpc-c
html-xml-utils  libwbxml  libxmlsec1  xml-security-c  xmlcatmgr   xmlsh
libmxml         libxml++  tinyxml     xml-tooling-c   xmlformat   xmlstarlet

Установка пакетов

Чтобы установить пакет, запустите:

brew install PACKAGE

Например, чтобы установить jq, процессор JSON, нужно ввести:

$ brew install jq
==> Downloading http://stedolan.github.io/jq/download/source/jq-1.3.tar.gz
==> ./configure
==> make
/home/ubuntu/.linuxbrew/Cellar/jq/1.3: 7 files, 256K, built in 10 seconds
$ which jq
/home/ubuntu/.linuxbrew/bin/jq
$ jq --version
jq version 1.3

Как видите, LinuxBrew – очень полезный инструмент: несмотря на то, что jq можно найти в последних репозиториях Ubuntu, содержащаяся в них версия программы устарела (1.2). Debian Stable и Testing вообще не предоставляют jq. LinuxBrew позволяет установить самую последнюю версию пакета (1.3). Кроме того, LinuxBrew устанавливает программу согласно пути, который не будет конфликтовать с стандартной локацией в системе.

Добавление существующих репозиториев HomeBrew

Репозитории HomeBrew/LinuxBrew называются taps. Это обычные репозитории GitHub, содержащие Ruby-скрипты – так называемые формулы (Formulas). Несколько общих репозиториев можно найти здесь.

Для примера попробуйте добавить репозитории homebrew-science, содержащий множество научных программ с открытым исходным кодом, и HomeBrew-Games:

$ brew tap homebrew/science
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-science'...
Tapped 237 formula
$ brew tap homebrew/games
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-games'...
Tapped 57 formula

Просмотрите доступные tap-ы:

$ brew tap
homebrew/science
homebrew/games

Установите любой пакет из этих репозиториев:

$ brew install gnu-go
==> Downloading http://ftpmirror.gnu.org/gnugo/gnugo-3.8.tar.gz
#################################################################
==> ./configure --prefix=/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8 --with-readline=/usr/lib
==> make install
/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8: 9 files, 7.0M, built in 60 seconds

Обновление репозиториев и пакетов

Чтобы загрузить обновления для Formulas, запустите:

$ brew update

Чтобы обновить пакеты (если есть доступные обновления), используйте:

$ brew upgrade PACKAGE

Создание пользовательских и личных репозиториев

TAP (или репозиторий) в HomeBrew – это просто набор так называемых Formulas (Ruby-скриптов, хранящихся в локальных файлах или в репозиториях GitHub).

Formulas в локальных файлах

Чтобы установить formula из локального файла, запустите:

$ brew install /full/path/to/file.rb

Это полезно при создании новой formula и устранении неполадок.

Formulas в репозиториях GitHub

Чтобы создать новый TAP-репозиторий в GitHub, создайте обычный новый репозиторий GitHub и назовите его:

homebrew-NAME

Имя любого TAP-репозитория должно начинаться с homebrew-; NAME – любое имя репозитория.

Например: пользователь GitHub по имени agordon создаёт репозиторий HomeBrew по имени gordon; полный URL выглядит так:

https://github.com/agordon/homebrew-gordon

Чтобы использовать этот репозиторий:

$ brew tap agordon/gordon
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/agordon-gordon'...
Warning: Could not tap agordon/gordon/libestr over Homebrew/homebrew/libestr
Warning: Could not tap agordon/gordon/coreutils over Homebrew/homebrew/coreutils
Tapped 12 formula

Примечания

Команда brew tap использовала имя пользователя agordon и суффикс репозитория gordon (суффикс homebrew-gordon) и вывела адрес доступа на github.

Formula-скрипты в пользовательских репозиториях могут конфликтовать со скриптами в официальных репозиториях HomeBrew, но это абсолютно нормальное поведение.

Чтобы установить не конфликтующие пакеты из пользовательского репозитория, запустите:

$ brew install libjson

Чтобы установитьь пакеты из определённых tap-ов, введите:

$ brew install agordon/gordon/coreutils

Дополнительные ссылки

Примечание: Читая о HomeBrew, помните, что эта программа разработана для Mac OS X. Хотя LinuxBrew и HomeBrew имеют много общего, в LinuxBrew встречаются черты, характерные только для Linux.

Tags: , , , , , ,

Добавить комментарий