Void Linux. Управление пакетами. Система XBPS: вступление

Алексей Федорчук

Роль менеджера пакетов в дистрибутиве VOID исполняет XBPS, то есть X Binary Package System — Система Бинарных Пакетов для Иксов. Почему для Иксов? Тайна сия велика есть, потому что и её утилиты работают из командной строки, и управляется она с любыми пакетами, не только иксовыми. Если же X символизирует таинственность — то спешу разочаровать читателя, ничего таинственного в этой системе нет. Ибо она обеспечивает обычные для такого рода систем функции, как то:

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

В отличие от большинства аналогичных систем, каждая из перечисленных функций обеспечивается не опциями одной команды (как в yum, zypper, packman etc.), а самостоятельными утилитами. Полный их список (в алфавитном порядке) таков:

  • xbps-create — создание бинарных пакетов;
  • xbps-dgraph — построение dot-графов пакета;
  • xbps-install — установка и обновление пакетов и системы в целом;
  • xbps-pkgdb — сопровождение базы данных пакетов;
  • xbps-query — запрос информации и пакетах и репозиториях;
  • xbps-reconfigure — конфигурирование установленных пакетов;
  • xbps-remove — удаление пакетов;
  • xbps-rindex — работа с бинарными репозиториями.

Каждая из этих утилит имеет свой набор опций, полный список которых, вместе с кратким описанием, можно получить, дав одноимённую команду без параметров. И со временем все эти утилиты и их опции будут описаны на этих страницах, только в порядке не алфавитом, а тем, что определеяется логикой. А пока — несколько слов о том, что такое, товарищи, пакет, и что такое, братья, репозиторий в понимании дистрибутива Void.

Пакеты Void’а выглядят необычно, так как имеют суффикс *.xbps. Однако это — самые обычные tar-архивы, сжатые утилитой xz, которая постепенно становится стандартным компрессом для Linux-систем. Убедиться в этом легко — достаточно скачать любой пакет (откуда — скажу чуть позже) и дать команду file:

$ file maim-3.4.46_1.x86_64.xbps
maim-3.4.46_1.x86_64.xbps: XZ compressed data

Впрочем, непосредственно с файлами пакетов применителю практически не придётся иметь дело — XBPS, как и любая другая система пакетного менеджмента, изолирует его от них, отсылая в репозитории пакетов.

Как и везде, репозиторий Void’а — это хранилище пакетов, содерожащее метаинформацию о них в виде файла [arch]-repodata, где arch — одна из четырёх поддерживаемых дистрибутивом архитектур:

  • armv6l-repodata
  • armv7l-repodata
  • i686-repodata
  • x86_64-repodata

Не смотря на отсутствие суффикса, это тоже компрессированный файл, но уже сжатый утилитой gzip:

$ file x86_64-repodata                                               [Works/XBPS]
x86_64-repodata: gzip compressed data, last modified: Sun Sep 20 09:11:57 2015, from Unix

Следовательно, его содержимое можно просмотреть такой командой:

$ zcat x86_64-repodata

И увидеть, что это довольно большой и не очень прозрачный XML-файл. Впрочем, нам в его содержимое вникать пока не обязательно, достаточно того, что благодаря этому файлу система XBPS воспринимает репозиторий как репозиторий, а не как файлопопмойку.

Фактически Void имет в настоящее время только один репозиторий, именуемый void-repo, и располагается он здесь:

http://repo.voidlinux.eu (Germany, EU default)

Правда, он содержит в себе, кроме главной ветки, ещё четыре, которые воспринимаются как самостоятельные репозитории, то есть каждый имеет свой файл [arch]-repodata:

  • void-repo-nonfree-3_1 — содержит так называемые «не совсем свободные» пакеты, то есть имеющие те или иные ограничения в распространении;
  • void-repo-multilib-3_1 — включает 32-битные пакеты, предназначенные для запуска на 64-битных машинах;
  • void-repo-multilib-nonfree-3_1 — ветка предыдущего, включающая «не совсем свободные» пакеты;
  • void-repo-debug-3_1 — пакеты с отладочной информацией (только из главной ветки).

Ни один из этих дополнительных репозиториев по умолчанию не подключён, этим надо озаботиться самостоятельно (как — будет рассказано в ближайшем очерке).

Обращаю внимание на void-repo-nonfree-3_1 — именно в нём можно найти такие вещи, как фирменные видеодрайвера, flash-plugin и так далее. Ввиду важности этого вопроса для многих применителей, дело о нём выделено в отдельное производство.

Кроме того, репозиторий Void имеет три официальных зеркала:

http://repo2.voidlinux.eu (Germany, EU)
http://repo3.voidlinux.eu (Los Angeles, CA, US)
http://repo4.voidlinux.eu (Paris, FR, EU)

Сравнив скорость доступа к ним, можно выбрать самое быстрое в данных условиях. Только нужно помнить, что они не полностью идентичны мастер-репозиторию: во втором германском и парижском зеркалах отсутствуют все дополнительные ветки.

Получив общее представление о пакетах и репозиториях дистрибутива Void, можно приступать к их практическому использованию. Однако сначала, как было обещано, несколько слов о содержимом репозитория non-free.

Оглавление

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