Статус: Устаревший
Эта статья устарела и больше не поддерживается.
Причина
Теперь Homebrew предоставляет основную поддержку для Linux.
Смотрите вместо этого
Эта статья может быть полезной в качестве справочного материала, но может не работать или не соответствовать лучшим практикам. Мы настоятельно рекомендуем использовать недавнюю статью, написанную для используемой вами операционной системы.
Вступление
LinuxBrew – это форк Linux популярного менеджера пакетов HomeBrew для Mac OS X.
LinuxBrew – это программное обеспечение для управления пакетами, которое позволяет устанавливать пакеты из исходного кода поверх системного пакетного менеджера по умолчанию (например, “apt/deb” в Debian/Ubuntu и “yum/rpm” в CentOS/RedHat).
Зачем использовать LinuxBrew?
-
HomeBrew изначально разрабатывался для Mac OS X (которая не имеет стандартной системы управления пакетами с открытым исходным кодом). Он заменил такие системы управления пакетами, как MacPorts и Fink. LinuxBrew – это порт Homebrew для Linux.
-
Большинство дистрибутивов Linux имеют хорошую систему управления пакетами (например, “apt/deb” в Debian/Ubuntu и “yum/rpm” в CentOS/RedHat), однако
-
Пакеты в стандартных репозиториях часто устаревают по сравнению с последними доступными версиями, и
-
Многие пакеты с открытым исходным кодом недоступны в стандартных репозиториях (например, распространенные инструменты биоинформатики).
-
-
LinuxBrew предоставляет репозиторий рецептов для установки программного обеспечения (пакеты устанавливаются из исходного кода и компилируются на локальной машине), чтобы дополнить пакеты из стандартного репозитория дистрибутива.
-
LinuxBrew предоставляет простой метод создания собственных репозиториев (т.е. списка программ с открытым исходным кодом, подготовленного под ваши потребности).
-
LinuxBrew устанавливает программное обеспечение в указанный пользователем каталог (а не системный), и не требует доступа через
sudo
. -
LinuxBrew (и HomeBrew) хорошо интегрируются с GitHub, обеспечивая легкое совместное использование рецептов установки.
Особенно с DigitalOcean, который (на момент написания этого) не предоставляет общедоступных образов Droplet (с установленным настраиваемым программным обеспечением), репозиторий LinuxBrew может предоставить быстрый способ установки определенных пакетов и версий на стандартной Linux-машине.
Основное преимущество LinuxBrew
Простыми словами, LinuxBrew берет на себя загрузку файла tar.gz
и запуск команды ./configure && make && make install
за вас (или любые другие команды, необходимые для установки пакета).
A LinuxBrew Formula is a Ruby script which defines where to find the tar.gz
file, how to build the package, and how to install it.
A formula file can be as simple as hmmer.rb (a bioinformatics tool):
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.
Как только файл формулы правильно определен, установка пакета становится простым вопросом выполнения:
$ brew install FORMULA
Подготовка к установке LinuxBrew – Debian/Ubuntu
Для систем на основе Debian/Ubuntu выполните следующие команды:
$ 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
Подготовка к установке LinuxBrew – CentOS/RedHat
Для систем на основе RedHat/CentOS выполните следующие команды:
$ 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 сводится к клонированию репозитория LinuxBrew.
Шаг 1 – Клонирование LinuxBrew
Чтобы сохранить порядок, клонируйте LinuxBrew в скрытый каталог в домашнем каталоге пользователя:
$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew
, но любой другой каталог также подойдет.
Шаг 2 – Обновление переменных среды
Следующим шагом является добавление LinuxBrew в переменные среды пользователя.
Добавьте следующие строки в конец файла ~/.bashrc
пользователя:
# Пока LinuxBrew не будет исправлен, требуется выполнить следующее.
# См.: 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
## Настройка 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
, чтобы увидеть список всех доступных пакетов (все пакеты, о которых знает текущая установка LinuxBrew – см. ниже о добавлении репозиториев).
Введите brew search WORD
, чтобы увидеть все пакеты (называемые Формулами в жаргоне HomeBrew), содержащие слово 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 очевидна: в то время как в Ubuntu в последних репозиториях есть jq, его версия устарела (1.2). Debian Stable и Testing вообще не имеют пакета jq. Версия LinuxBrew является самой последней (1.3). Кроме того, LinuxBrew устанавливает программу в путь, который не будет конфликтовать с системным расположением по умолчанию.
Добавление существующих репозиториев HomeBrew
Репозитории HomeBrew/LinuxBrew называются TAPS. Это просто репозитории GitHub, содержащие Ruby-скрипты («Формулы»). У пользователя HomeBrew на GitHub есть несколько общих репозиториев.
Пример: добавление репозитория 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
Список доступных taps:
$ 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
Обновление TAP и пакетов
Чтобы загрузить обновления Формул, выполните:
$ brew update
Чтобы обновить пакеты (если доступны обновления), выполните:
$ brew upgrade PACKAGE
Создание пользовательских/частных TAP (репозиториев)
A HomeBrew TAP/Repository is simply a collection of Formulas – Ruby scripts stored in local files or in GitHub repositories.
Формулы в локальных файлах
Чтобы установить формулу из локального файла, выполните:
$ brew install /full/path/to/file.rb
Это полезно при создании (и отладке) новой формулы.
Формулы в репозиториях GitHub
Для создания пользовательского репозитория TAP в GitHub создайте новый репозиторий GitHub (в учетной записи вашего пользователя GitHub) и назовите его homebrew-NAME
. Он должен начинаться с «homebrew-», чтобы работать как кран HomeBrew/LinuxBrew. 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») и вывел URL-адрес GitHub для доступа. -
Формулы в пользовательских репозиториях могут конфликтовать с формулами в официальных репозиториях HomeBrew. Это абсолютно нормально. См. ниже, как установить такие пакеты.
Для установки пакетов из пользовательских репозиториев без конфликтов запустите:
$ brew install libjson
Чтобы установить пакеты из определенных кранов, выполните:
$ brew install agordon/gordon/coreutils
Больше информации
ПРИМЕЧАНИЕ: При изучении информации, связанной с HomeBrew, имейте в виду, что HomeBrew был разработан для Mac OS X.
LinuxBrew (порт HomeBrew для Linux) имеет много общих черт с HomeBrew, но также некоторые отличия, специфичные для Linux.
Часто задаваемые вопросы о HomeBrew
Кулинарная книга формул HomeBrew
Устранение неполадок в HomeBrew
<div class=“author”>Предоставлено <a href=“https://github.com/agordon”>Ассафом Гордоном</a></div>
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-linuxbrew-on-a-linux-vps