Как установить и использовать LinuxBrew на Linux VPS

Статус: Устаревший

Эта статья устарела и больше не поддерживается.

Причина

Теперь 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.

  • LinuxBrewHomeBrew) хорошо интегрируются с 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

ПРИМЕЧАНИЯ

  1. brew tap использовал имя пользователя agordon и суффикс репозитория gordon (суффикс «homebrew-gordon») и вывел URL-адрес GitHub для доступа.

  2. Формулы в пользовательских репозиториях могут конфликтовать с формулами в официальных репозиториях HomeBrew. Это абсолютно нормально. См. ниже, как установить такие пакеты.

Для установки пакетов из пользовательских репозиториев без конфликтов запустите:

$ brew install libjson

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

$ brew install agordon/gordon/coreutils

Больше информации


ПРИМЕЧАНИЕ: При изучении информации, связанной с HomeBrew, имейте в виду, что HomeBrew был разработан для Mac OS X.

LinuxBrew (порт HomeBrew для Linux) имеет много общих черт с HomeBrew, но также некоторые отличия, специфичные для Linux.

Wiki по HomeBrew

Часто задаваемые вопросы о HomeBrew

Кулинарная книга формул HomeBrew

Устранение неполадок в HomeBrew

Веб-сайт LinuxBrew

Известные проблемы LinuxBrew

<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