воскресенье, 10 января 2016 г.

Пакетный менеджер Linuxbrew или установка программ аля Mac OS X

В операционной системе Mac OS X (или просто OS X) существует весьма годный пакетный менеджер под названием Homebrew. Он является аналогом таких пакетных менеджеров как Fink и MacPorts (который в свою очередь является аналогом портов из FreeBSD). Одно из главных преимуществ Homebrew - это открытый исходный код (двухпунктовая лицензия BSD). Это позволило энтузиастам создать его форк для Linux-систем, адаптировать его и позволить легко использовать в паре со штатным пакетным менеджером. Давайте посмотрим, что из себя представляет Linuxbrew и в каких случаях он может пригодиться.


Для начала стоит поговорить о самом Homebrew. Это пакетный менеджер, написанный на язке Ruby, имеющий весьма простой и понятный код. Он позволяет устанавливать самые свежие (да любые, по сути) программы в ваш домашний каталог, не запрашивая права sudo и не нарушая работы штатного менеджера пакетов. Суть работы Homebrew заключается в том, что при запросе установки нужной вам программы, он выкачивает её исходный код прямо из git-репозитория, собирает его, устанавливает программу в домашний каталог и создаёт символьную ссылку в /usr/local. Всё крайне просто. Вот список основных его достоинств:

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

  • class Wget < Formula
      homepage "https://www.gnu.org/software/wget/"
      url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
      sha256 "52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd"

      def install
        system "./configure", "--prefix=#{prefix}"
        system "make", "install"
      end
    end

  • не выкачивает дублирующиеся зависимости, а использует то, что уже есть в  системе.

Как видим, штука неплохая. Linuxbrew полностью аналогичен. Разработка ведётся на GitHub, каждый день появляются новые изменения, исправляются какие-либо недорработки. Также добавляются новые формулы. Теперь давайте попробуем его установить. Сначала поставим нужные зависимости. Для Debian/Ubuntu:

sudo apt-get install build-essential curl git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev

Для Fedora/CentOS:

sudo yum groupinstall 'Development Tools' && sudo yum install curl git irb m4 ruby texinfo bzip2-devel curl-devel expat-devel ncurses-devel zlib-devel

Внимание: 32-х битные системы не поддерживаются!

Теперь поставим скрипт, который скачает и установит Linuxbrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"

Далее настроим переменные среды. Открываем

nano .bashrc

и в конец добавляем строки:

export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"


Вот и всё. Программы устанавливаются коммандой:

brew install <имя нужной программы>

Для поиска доступных программ:

brew search --desc

Для вывода полного списка доступного ПО:

brew search

Или можно непосредственно перейти на сайт braumeister.org и посмотреть доступные пакеты там. Вывод справки:

brew help или man brew

Ссылки:

Официальный сайт
Сайт Homebrew
Репозиторий Linuxbrew на GitHub

Комментариев нет:

Отправить комментарий