Установка и использование LinuxBrew на сервере Linux
Centos, Debian, RHEL, Ubuntu | Комментировать запись
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.
- HomeBrew Wiki
- HomeBrew FAQ
- HomeBrew Formula Cookbook
- Устранение неполадок HomeBrew
- Веб-сайт LinuxBrew
- Уязвимости и проблемы LinuxBrew