Введение
Итак, что же такое Paludis? Если вы подумали о чём-нибудь, связанном с растениями, то, не смотря на логотип на официальном сайте, уверяю, попали пальцем в небо.
Paludis - это альтернативный (так же как и нерассматриваемый здесь pkgcore) пакетный менеджер, написанный для дистрибутива Gentoo Linux и его производных, но, теоретически, не ограниченный только лишь этими дистрибутивами.
Хотя Paludis разрабатывается на протяжении нескольких лет одним из разработчиков Gentoo, данный пакетный менеджер не является проектом Gentoo Foundation, так же как и не является официальным пакетным менеджером в этой системе. Paludis, the Other Package Mangler Paludis не является ни надстройкой, ни дополнением к Portage. Хотя его функции сходны с функциями стандартного пакетного менеджера Gentoo, он не преследует цель воспроизвести все функции Portage. Он просто идёт своим путём, и этот путь очень похож на пути любых других пакетных менеджеров и подвержен влиянию философии Gentoo. "Paludis, the Other Package Mangler" - так звучит описание на официальном сайте.
С момента начала разработки (так же начатой одним из бывших разработчиков Gentoo) Exherbo, Paludis является основным пакетным менеджером этого дистрибутива и многие возможности Paludis написаны специально под Exherbo.
Ниже будут рассмотрены основные отличия Paludis от Portage, его плюсы и минусы, а также будет произведена попытка написать некое подобие краткого руководства по его базовой установке и настройке, а также переходу от использования Portage к использованию Paludis.
Соглашение по оформлению
Идея
Paludis следует PMS (это совсем не медицинский термин, а всего лишь Package Manager Specification) - спецификации пакетного менеджера и использует EAPI - прикладной программный интерфейс файла сборки пакетов. PMS призван обеспечить совместимость между различными пакетными менеджерами, используемых в Gentoo Linux, его производных, и, возможно, прочих дистрибутивах. Это означает, что он полностью совместим с базой доступных, базой установленных и форматом пакетов, используемых Portage. Из чего следует, что данные пакетные менеджеры являются вполне взаимозаменяемыми и могут использовать в системе одновремено. При условии, что пакеты не используют более новую версию EAPI, неподдерживаемую Portage или некоторые расширения к EAPI, предоставляемые Paludis, которые могут быть несовместимыми с Portage. В противном случае пакет откажется устанавливаться, или же, если используется очень старая версия Portage, не поддерживающая спецификацию PMS, может работать непредсказуемо.
Несмотря на то, что авторы Paludis ссылаются на Portage, как на "предшественник" - с недавних пор последние версии Portage не сильно отстают, как по базовым, так и по расширенным, возможностям от Paludis. По-крайней мере современные версии Portage так же поддерживают PMS/EAPI (EAPI-2), Git и т.д.
Дополнительную информацию о EAPI можно найти здесь: http://www.gentoo-wiki.info/EAPI.
О PMS - здесь: http://www.gentoo.org/proj/en/qa/pms.xml.
Текущая спецификация PMS: http://dev.gentoo.org/~ferdy/pms/pms-head.pdf.
Блог главного разработчика Paludis: http://ciaranm.wordpress.com/.
Реализация
В отличии от Portage, написанного на языке программирования Python, Paludis написан на C++. Это даёт ему определённый выигрыш в скорости, по сравнению с Portage. Хотя за скорость работы придётся расплачиваться большим временем сборки самого менеджера. Надо заметить, что последние версии Portage проигрывают в скорости Paludis очень незначительно.
Paludis имеет достаточно строгий, хотя и недостаточно прозрачный API, позволяющий писать приложения, работающие поверх пакетного менеджера. Данный API доступен для нескольких языков: прежде всего для C++, Ruby и Python.
Фактически основной консольный клиент Paludis, позволяющий выполнять основные операции, такие как - установка и удаление пакетов, обновление репозиториев, вывод информации о конфигурации Paludis - это лишь небольшое приложение, использующее возможности ядра Paludis через его API. В стандартную поставку Paludis входят дополнительные клиенты - такие как importare, inquisitio, reconcilio и другие.
То есть, одним из основных отличий Paludis от других пакетных менеджеров, и, в частности, от Portage, является: наличие конфигурации, репозиториев, ядра, имеющему доступ к конфигурации и репозиториям, и различных клиентов, которые взаимодействуют с ядром менеджера и не взаимодействуют с конфигурацией, репозиориями и друг с другом напрямую.
Возможности
Отличия
Достоинства
- хорошая производительность
- гибкая система конфигурирования
- хорошо продуманная раздельная архитектура, позволяющая, при желании, легко расширять пакетный менеджер и изменять формат пакетов, не затрагивая при этом клиентов
- масштабируемая и гибкая система репозиториев: можно иметь как один единственный репозиторий, так и их сотню, нет привязки к "официальному" или "основному" репозиторию - каждому репозиторию можно присвоить собственный приоритет
- возможность работать в режиме совместимости с другими пакетными менеджерами, в частности Portage, в случае сборки с USE-флагом portage
- теоретическую возможность работать в других дистрибутивах систем POSIX (Portage так же способен на это, но при больших усилиях, Paludis изначально штатно предусматривает такую возможность)
Недостатки
- недостаточная простота использования неподготовленным пользователем
- официально относится к "неподдерживаемому программному обеспечению" в силу идеологических разногласий с ведущими разработчиками Gentoo и Portage
- документация, написанная разработчиками, недостаточно подробна
- отсутствие удобного и быстрого клиента для индексирования и поиска пакетов
Установка
Paludis поставляется без каких либо умолчальных конфигурационных файлов. В подобной коплектации он даже неспособен запуститься.
Режим совместимости
Существует возможность собрать Paludis с флагом portage - в этом случае он будет использовать существующую среду Portage, не требуя собственных конфигурационных файлов. Но в этом случае невозможно будет использовать расширенные возможности Paludis.
Автоматическая
Можно использовать официальный скрипт http://git.pioto.org/?p=paludis-scripts.gi...ge2paludis.bash. Он пытается анализировать конфигурационные файлы Portage и создаёт на их основе конфигурациюнные файлы Paludis. Результат работы этого скрипта обязательно следует проверить.
Ручная
Все конфигурационные файлы Paludis, по умолчанию, должны быть размещены в /etc/paludis.
Paludis поддерживает следующие форматы конфигурационных файлов:
- файл bashrc, представляет из себя bash-скрипт, который выполняется Paludis перед выполнением каких-либо операций. Используется для установки переменных среды, подобхных CFLAGS и PATH. Файл bashrc выполняется в песочнице
- текстовые файлы с суффиксом .conf, статические конфигурационные файлы, каждая строка которого содержит один параметр в формате имя=значение. Значение параметра может ссылаться на имя другого параметра в стиле bash - $имя или ${имя}. Имена параметров чувствительны к регистру. Пустые строки игнорируются. Строки, начинающиеся с решётки # игнорируются. Проблемы в начале и конце строки игнорируются. Перенос строк осуществляется с помощью обратного слеша \
- текстовые файлы с суффиксом .conf, статические конфигурационные файлы, каждая строка которого содержит список токенов (см. ниже), разделённых пробелами. Пустые строки игнорируются. Строки, начинающиеся с решётки # игнорируются. Проблемы в начале и конце строки игнорируются. Перенос строк осуществляется с помощью обратного слеша \
- скрипты с суффиксом .bash, динамические конфигурационные файл, представляющие из себя bash-скрипты, вывод которых будет интерпретироваться так же как содержимое конфигурационного файла .conf
- каталоги с суффиксом .conf.d, Paludis будет ожидать в подобных каталогах файлы .conf и .bash
Второй тип файлов .conf содержит список токенов, разделённых пробелами. Данный тип конфигурационных файлов позволяет связать с определёнными пакетами, или другими сущностями Paludis, некоторые значения.
Первый токен - это спецификация пакета, зеркала и т.д., которая представляет собой совокупность категории, имени пакета, имени набора, имени зеркала и имени репозитория, и имеет следующий формат:
- [оператор]категория/пакет-[версия][суффикс], более полную информацию о спецификации пакета можно найти ниже
- набор, набор - это определённый конфигурацией набор пакетов, примерами наборов являются встроенные наборы: everything, insecurity, security, system, world
- зеркало, зеркало - это набор сетевых ресурсов (ftp, http и т.д.), содержащих в себе набор определённых файлов, которые требуются для сборки пакета. Большинство пакетов содержат в себе ссылку на то или иное зеркало, вместо прямой ссылки на ресурс. Пакеты могут ссылаться просто на зеркала, без указания имени конкретного зеркала, в этом случае будет использовано зеркало с именем репозитория, которому принадлежит пакет, либо зеркало, специфицированное шаблоном *.
В качестве имени категории, имени пакета, имени репозитория или имени зеркала может быть использован шаблон *.
В спецификации пакета могут быть использованы следующие необязательные компоненты:
Операторы:
- =, равно
- <=, меньше или равно
- <, меньше
- >=, больше или равно
- >, больше
- ~, равно, исключая ревизию пакета. Если указана ревизия пакета, то, так же, больше или равно этой ревизии
- =*, начинается со строки. Символ *, должен следовать за версией, например: =sys-apps/paludis-2.* или sys-apps/paludis-[=2.*]
- ~>, больше или равно и меньше следующей наименьшей значащей версии (~>1.2.3 подразумевает выборку пакетов >=1.2.3 и <1.3)
Суффиксы:
- :слот, номер слота, например: sys-devel/gcc:4.2
- ::репозиторий->репозиторий, параметры репозитория, см. ниже
- [флаг] и [-флаг], включенный или отключенный USE-флаг. Может быть указан несколько раз для разным флагов
- [=1.23], частично соответствует указанной версии. Любой другой поддерживаемый оператор, кроме =, может быть использован. Операторы | или & могут быть использованы, чтобы указать несколько версий. Например, для того, чтобы установить GRUB 2, но исключить версию из Subversion, можно задать следующий критерий: sys-boot/grub[>=1&<9999]
- [.ключ=значение], значение ключа метаданных. Поддерживаются только простые ключи метаданных
Параметры репозитория:
- репозиторий, находится в указанном репозитории
- репозиторий?, может быть установлен в указанной репозиторий
- репозиторий??, то же самое, но игнорировать маскирование
- /путь, установлен в корень /путь
- /путь?, может быть установлен в репозиторий формата VDB с корнем /путь
- /путь??, то же самое, но игнорировать маскирование
В качестве значения обычно может быть использован шаблон *, который имеет более высокий приоритет нежели все остальные значения.
Все последующие токены в строке - это набор, связанных со спецификацией значений. Среди токенов может встречатся метка вида метка:, которая определяет подгруппу значений, и после которой все оставшиеся в строке значения будут включены в подгруппу с именем метка. Например:
Код: Выделить всё
x11-base/xorg-server::gentoo xcb VIDEO_CARD: -* nvidia radeonhdОзначает, что с пакетом x11-base/xorg-server из репозитория gentoo нужно связать значения xcb, nvidia и radeonhd, последние два значения нужно включить в подгруппу значений VIDEO_CARD. В настоящий момент подгруппы значений применяются для задания дополнительных USE-флагов. В данном случае список значения представляет собою список USE-флагов.
Для работы Paludis необходимы, по-меньшей мере, следующие файлы (для дистрибутива Gentoo Linux, в соответствии с /usr/share/paludis/distributions/gentoo и /usr/share/paludis/distributions/gentoo.conf):
- bashrc
- environment.conf
- keywords.conf
- licenses.conf
- repositories/
Для большинства систем потребуется следующий набор файлов:
- bashrc
- environment.conf
- keywords.conf
- licenses.conf
- mirrors.conf
- package_mask.conf
- package_unmask.conf
- repositories/
- repositories/playman.tmpl
- repository_defaults.conf
- use.conf
bashrc
В простейшем случае может иметь следующий вид:
Код: Выделить всё
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"Аналогичный умолчальному make.conf из Portage.
Либо:
Код: Выделить всё
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -msse4"
MAKEOPTS="-j17"
if expr $(date +%w) = 7; then
CFLAGS="${CFLAGS} -g -ggdb3"
fi
if [[ "${CATEGORY}" != "sys-apps" ]]; then
CCACHE_DIR="/var/tmp/ccache"
PATH="/usr/lib64/ccache/bin:${PATH}"
fiПозволяющему указать дополнительные параметры компилятора и то, что в Воскресенье все собираемые пакеты должны быть собраны с отладочной информацией. А так же то, что все пакеты, кроме пакетов из категории sys-apps, должны быть собраны с использованием ccache.
environment.conf
Данный конфигурационный файл описывает среду окружения Paludis.
В простейшей ситуации будет достаточно параметра world, описывающего путь к файлу world, содержащему список пакетов набора world (пакетов, явно установленных пользователем). В большинстве систем, основанных на Gentoo Linux, - это /var/lib/portage/world.
Код: Выделить всё
world = /var/lib/portage/worldИнформацию об остальных параметрах можно найти здесь: http://paludis.pioto.org/configuration/environment.html.
keywords.conf
Данный конфигурационный файл служит для отбора пакетов по ключевым словам архитектуры. Первый токен - спецификация пакета, второй и последующие - список ключевых слов.
Ключевые слова представляют собой список следующих значений:
- архитектура, отобрать все пакеты содержащие ключевое слово архитектура. Например: amd64, x86
- ~архитектура, отобрать все пакеты содержащие ключевое слово ~архитектура. Например: ~amd64, ~x86
- *, отобрать все пакеты, даже те, которые не содержат никакого ключевого слова
- -*, сбросить все ключевые слова, применённые ранее к подобной спецификации пакета
Пример:
Код: Выделить всё
# Отобрать все пакеты с ключевым словом amd64 из всех репозиториев
*/* amd64
# Выбрать нестабильный пакет sys-apps/paludis с ключевым словом ~amd64 из репозитория gentoo
sys-apps/paludis::gentoo ~amd64
# Заблокировать все пакеты из репозитория sunrise
*/*::sunrise -*
# Выбрать нестабильный пакет media-sound/mpd из репозитория с более высоким приоритетом
media-sound/mpd ~amd64licenses.conf
Данный конфигурационный файл служит для отбора пакетов по типам лицензий. Первый токен - спецификация пакета, второй и последующие - список токенов лицензий.
Токены лицензий представляют собой список следующих значений:
- лицензия, разрешить лицензию
- -лицензия, запретить лицензию
- -*, запретить все лицензии
- *, разрешить все лицензии
Пример:
Код: Выделить всё
*/* GPL-2 GPL-3 LGPL-2 LGPL-2.1
x11-drivers/* NVIDIAВ большинcтве случаев это файл будет выглядеть так:
Код: Выделить всё
*/* *mirrors.conf
Данный конфигурационный файл указывает Paludis - где искать файлы для скачивания при сборке ебидов. Первый токен - спецификация зеркала, второй и последующие - список URL. В стандартной поставке Paludis поддерживаются следующие схемы URL:
- file
- ftp
- http
- https
Список поддерживаемых схем может быть сравнительно просто расширен пользователем через механизм создания собственных фетчеров (fetchers).
В качестве списка URL можно использовать тот же самый список, используемый Portage. Но стоит иметь в виду, что Portage неявно подставляет суффикс distfiles/ к каждому URL. То есть, фактически, требует, чтобы каждый URL оканчивался суффиксом distfiles/. В случае с Paludis этот суффикс, если он на самом деле нужен, следует добавить самостоятельно. Например список зеркал и URL из конфигурации Portage:
Код: Выделить всё
* http://myserver/
gentoo http://distfiles.gentoo.org/В конфигурации Paludis может выглядеть так:
Код: Выделить всё
* http://myserver/distfiles/
gentoo http://distfiles.gentoo.org/distfiles/Пример:
Код: Выделить всё
* file://mnt/distfiles/ ftp://192.168.1.1/gentoo/
mpd http://sourceforge/distfiles/
my file:///media/usbdrive/
sunrise http://gentoo.local/distfiles/sunrise/package_mask.conf
Данный конфигурационный файл служит для безусловной маскировки пакетов. Каждая строка - это спецификация пакета.
Файл package_unmask.conf имеет более высокий приоритет нежели package_mask.conf. Если пакет попадает под спецификацю, как в package_mask.conf, так и в package_unmask.conf, то он будет расмаскирован.
Пример:
Код: Выделить всё
<dev-lang/perl-5.10.0
=media-sound/mpd-9999package_unmask.conf
Данный конфигурационный файл служит для безусловной маскировки пакетов. Каждая строка - это спецификация пакета.
Файл package_unmask.conf имеет более высокий приоритет нежели package_mask.conf. Если пакет попадает под спецификацю, как в package_mask.conf, так и в package_unmask.conf, то он будет расмаскирован.
Пример:
Код: Выделить всё
media-plugins/*::mpd
media-sound/mpd::mpdrepositories/
Каждый файл в каталоге repositories определяет репозитории Paludis. Репозитории бывают разных типов - есть репозитории, в которых выполняется поиск устанавливаемых пакетов, есть репозитории, в которых выполняется поиск установленных пакетов, есть репозитории, в которых выполняется поиск существующих пакетов, но которые не могут быть установленны без предварительного создания дополнительных репозиториев. Общее количество репозиториев неограниченно.
Любой, существующий в системе, пакет всегда присутствует в одном или нескольких репозиториях. Так, он может присутствовать в одном из репоизитории формата ebuild и в репозитории формата VDB. Или только в ebuild, или только в VDB. В репозиторий формата installed_unpackaged пакеты попадают из "ниоткуда".
У Paludis нет такого понятия, как оверлеи - все репозитория, по умолчанию, являются равными между собою. Различие и отношения между ними определяет пользователь с помощью параметров format, importance и master_repository. То есть никто не запрещает определить репозиторий local, с более высоким приоритетом, чем, например, funtoo и gentoo, последним можно выставить в качестве master_repository репозиторий local.
У каждого из этих репозиториев может быть установлен различный формат, разный приоритет, и различные типы и источники их синхронизации. Для клиентов Paludis это не будет иметь никакого значения - они будут работать с пакетами через Paludis API и использовать различные спецификации пакетов, для отбора различных пакетов.
Bмя репозитория никак не связано с именем конфигурационного файла репозитория. Для репозиториев формата ebuild имя хранится в файле repo_name, находящимся в каталоге профиля. До первичной синхронизации репозитория этот файл обычно недоступен и Paludis использует имя конфигурационного файла с префиксом x- и без постфикса .conf или .bash. Например: x-gentoo для репозитория, описанного файлом gentoo.conf.
Формат репозитория определяет его структуру и тип поддерживаемых пакетов. Форматы репозиториев:
- unavailable, репозиторий содержащий информацию о пакетах, которые недоступны. Такой репозиторий содержит лишь описание пакетов
- installed_unpackaged, репозиторий, содержащий пакеты, установленные с помощью клиента importare. Репозиторий installed_unpackaged позволяет сохранить информацию о приложениях, которые не принадлежат дереву пакетов Gentoo
- ebuild, репозитоий, содержащий стандартные пакеты Gentoo
- VDB, репозиторий, содержащий пакеты, установленные из стандартных пакетов Gentoo
- virtuals, виртуальный репозиторий, содержащий информацию о доступных пакетах, которые предоставляют виртуальные
- installed-virtuals, виртуальный репозиторий, содержащий информацию о установленных пакетах, которые предоставляют виртуальные
- exndbam
- accounts
- installed_accounts
- unwritten
Последние пять форматов предназначены для использования только в дистрибутиве Exherbo и в данной статье рассмотрены не будут.
Для каждого формата репозитория существует как общий, так и собственный набор параметров.
Некоторые из репозиториев имеют источник синхронизации. По-умолчанию поддерживаются следующие протоколы синхронизации:
- bzr
- bzr+aftp
- bzr+file
- bzr+ftp
- bzr+http
- bzr+https
- bzr+sftp
- bzr+ssh
- cvs+ext
- cvs+pserver
- cvs+ssh
- darcs+file
- darcs+http
- darcs+https
- darcs+ssh
- file
- git
- git+file
- git+http
- git+https
- git+rsync
- git+ssh
- hg+file
- hg+http
- hg+https
- hg+ssh
- hg+static-http
- rsync
- rsync+ssh
- svn
- svn+file
- svn+http
- svn+https
- svn+ssh
- tar+file
- tar+ftp
- tar+http
- tar+https
- dummy
Общие параметры таковы:
- root, предопопределённый параметр, задаваемый в specpath.conf
- format, формат репозитория, обязателен
- importance, целое, задающее приоритет репозитория. Пакет из репозитория с более высоким приоритетом, при отборе пакетов будет иметь преимущество перед таким же (категория, имя, версия) пакетом из репозитория с более низким приоритетом. По молчанию importance имеет значение 0, если установлен параметр master_repository, то - 10
Параметры репозитория unavailable:
- location, путь к репозиторию, обязателен
- name, имя репозитория, по умолчанию - unavailable
- sync, источник синхронизации репозитория
- sync_options, необязательные параметры для синхронизатора
Пример:
Код: Выделить всё
format = unavailable
location = /var/db/paludis/repositories/unavailable
sync = tar+http://git.exherbo.org/layman_repositories.tar.bz2
importance = -1Параметры репозитория installed_unpackaged:
- location, путь к репозиторию, обязателен
Пример:
Код: Выделить всё
format = installed_unpackaged
location = /var/db/paludis/repositories/installed_unpackagedПараметры репозитория ebuild:
- location, путь к репозиторию, обязателен
- master_repository, необязательное имя другого репозитория, имеющего формат ebuild. Установлено, то указанный репозиторий будет является главным по отношению к текущему, все отсутствующие параметры текущего репозитория будут наследоваться от главного. В случае, если параметр master_repository установлен, то приоритет текущего репозитория по умолчанию будет 10
- profiles, обязательный список каталогов, которые должны быть использованы в качестве профилей
- eclassdirs, необязательный список каталогов, в которых нужно искать еклассы
- distdir, необязательный параметр, указывающий каталог, в котором искать и куда сохранять дистфайлы, по умолчанию ${location}/distfiles
- setsdir, необязательный параметр, указывающий каталог, в котором искать описание наборов, по умолчанию ${location}/sets
- securitydir, необязательный параметр, указывающий каталог, в котором искать описание GLSA, по умолчанию ${location}/metadata/glsa
- newsdir, необязательный параметр, указывающий каталог, в котором искать новости GLEP 42, по умолчанию ${location}/metadata/news
- cache, необязательный параметр, указывающий каталог, в котором хранится кеш пакетов только для чтения. По умолчанию ${location}/metadata/cache. Если установлен в /var/empty, то кеш не будет использован
- write_cache, необязательный параметр, указывающий каталог, который Paludis будет записывать или из которого будет читать созданный кеш пакетов. По умолчанию ${location}/metadata/cache. Если установлен в /var/empty, то кеш не будет использован. По умолчанию /var/empty. Рекомендуется использовать в том случае, если репозиторий не имеет своего, предварительно созданного, кеша только для чтения, задаваемого параметром cache. Официальный репозиторий Gentoo такой кеш имеет
- append_repository_name_to_write_cache, необязательный параметр, содержащий булево значение, указывающий на необходимость создания в каталоге, задаваемом параметром write_cache, подкатала с именем репозитория. По умолчанию true. Для внутренних нудж
- ignore_deprecated_profiles, необязательный параметр, содержащий булево значение, указывающий на необходимость игнорирования устаревшийх профилей. Для внутренних нудж
- eapi_when_unknown, версия EAPI, которую следует использовать, если версия EAPI пакета неизвестна. Необязательный параметр, обычно устаналиваемый дистрибутивом
- eapi_when_unspecified, версия EAPI, которую следует использовать, если в пакете не указана версия EAPI. Необязательный параметр, обычно устаналиваемый дистрибутивом
- profile_eapi_when_unspecified, версия EAPI, которую следует использовать для профилей, когда она не указана. Необязательный параметр, обычно устаналиваемый дистрибутивом
- names_cache, необязательный параметр, указывающий каталог, который Paludis будет записывать или из которого будет читать созданный кеш имён пакетов. Этот кеш используется для поиска имени категории по имени пакета. Если установлен в /var/empty, то кеш не будет использован. По умолчанию /var/empty. Этот кеш значительно увеличивает скорость определения категории пакета
- sync, источник синхронизации репозитория
- sync_options, необязательные параметры для синхронизатора
- builddir, временный каталог, который следует использовать для сборки пакетов. Необязательный параметр. По умолчанию ${root}/var/tmp/paludis
- layout, раскладка репозитория, может быть traditional или exheres. Необязательный параметр, обычно устаналиваемый дистрибутивом
- use_manifest, необязательный параметр, определяющий как следует использовать файлы манифестов Manifest2, может быть use, require или ignore:
- use, проверять файлы, в соответствии с манифестом, если манифест существует
- ignore, игнорировать манифест
- require, если манифест не найден, то установка пакета будет прервана
Примеры:
Код: Выделить всё
format = ebuild
location = ${root}/usr/portage
names_cache = ${root}/var/cache/paludis/names
profiles = ${root}/etc/make.profile
sync = git://github.com/funtoo/portage.gitКод: Выделить всё
format = ebuild
location = /usr/portage
names_cache = /var/cache/paludis/names
profiles = ${location}/profiles/default/linux/amd64/2008.0/desktop
sync = rsync://rsync.gentoo.org/gentoo-portage/Код: Выделить всё
format = ebuild
location = /var/db/paludis/repositories/sunrise
master_repository = funtoo
names_cache=/var/cache/paludis/names
sync = svn+http://overlays.gentoo.org/svn/proj/sunrise/reviewed/
write_cache=/var/cache/paludis/writeПараметры репозитория VDB:
- location, путь к репозиторию, обязателен
- provides_cache, необязательный параметр, указывающий каталог, который Paludis будет записывать или из которого будет читать созданный кеш вирутальных пакетов. Если установлен в /var/empty, то кеш не будет использован. По умолчанию /var/empty
- names_cache, необязательный параметр, указывающий каталог, который Paludis будет записывать или из которого будет читать созданный кеш имён пакетов. Этот кеш используется для поиска имени категории по имени пакета. Если установлен в /var/empty, то кеш не будет использован. По умолчанию /var/empty. Этот кеш значительно увеличивает скорость определения категории пакета
- builddir, временный каталог, который следует использовать при удалении пакетов. Необязательный параметр. По умолчанию ${root}/var/tmp/paludis
Пример:
Код: Выделить всё
format = vdb
location = ${root}/var/db/pkg
provides_cache = ${root}/var/cache/paludis/provides
names_cache=/var/cache/paludis/namesrepositories/playman.tmpl
Данный конфигурационный файл может использоваться в качестве шаблона утилитой playman, входящей в поставку Paludis, для создания конфигурационного файла репозитория, при добавлении нового репозитория.
Файл представляет собою текстовый конфигурационный файл, идентичный конфигурационным файлам репозиториев .conf, в котором могут использоваться следующие шаблоны:
- @NAME@, имя нового репозитория
- @SYNC@, URL синхронизации нового репозитория
Пример:
Код: Выделить всё
format = ebuild
location = ${root}/var/db/paludis/repositories/@NAME@
master_repository = gentoo
names_cache = ${root}/var/cache/paludis/repositories/names
sync = @SYNC@
write_cache=${root}//var/cache/paludis/writerepository_defaults.conf
Данный конфигурационный файл служит для задания параметров по умолчанию для всех репозиториев. Если параметр не поддерживается некоторым форматом репозитория, то он будет проигнорирован.
Пример:
Код: Выделить всё
names_cache = ${root}/var/cache/paludis/names
write_cache = ${root}/var/cache/paludis/writeuse.conf
Данный конфигурационный файл описывает среду окружения Paludis.
В простейшей ситуации будет достаточно параметра world, описывающего путь к файлу world, содержащему список пакетов набора world (пакетов, явно установленных пользователем). В большинстве систем, основанных на Gentoo Linux, - это /var/lib/portage/world.
Код: Выделить всё
world=/var/lib/portage/worldИнформацию об остальных параметрах можно найти здесь: http://paludis.pioto.org/configuration/environment.html.
keywords.conf
Данный конфигурационный файл служит для задания USE-флагов. Первый токен - спецификация пакета, второй и последующие - список USE-флагов и подгрупп USE-флагов.
Токены USE-флагов представляют собой список следующих значений:
- флаг, включить флаг
- -флаг, отключить флаг
- -*, отключить все флаги
Пример:
Код: Выделить всё
# Флаги, применимые для большинства пакетов
*/* -32bit -alsa -arts applet avahi -bluetooth -esound bash-completion -esd -ipv6 -kde minimal nautilus pulseaudio -qt3 -qt4 -sse3 tracker vim-syntax visibility xinetd
# Отключить поддержку всех видеокарт, кроме Radeon HD для всех пакетов
*/* VIDEO_CARDS: -* radeonhd
# Отключить поддержку протокола evdev для всех пакетов
*/* INPUT_DEVICES: -evdev
# Не удалять отладочную информацию из пакетов, устанавливаемых из репозитория local
*/*::local BUILD_OPTIONS: -strip
app-editors/vim -minimal
dev-lang/python sqlite
dev-libs/gmime mono
dev-libs/libcdio -minimal
media-gfx/splashutils fbcondecor
media-sound/pulseaudio alsa
net-dns/avahi mdnsresponder-compat
sys-apps/paludis inquisitio ruby-bindings
sys-apps/smartmontools -minimal
sys-libs/ncurses -minimal
x11-base/xorg-server -minimal
x11-libs/cairo glitz
x11-libs/libX11 xcbИспользование
Как было сказано выше, Paludis имеет несколько консольных клиентов в поставке. Ниже будут кратко рассмотрены основные возможности и способы использования большинства из них. Многие клиенты поддерживаются одинаковые параметры командной строки - подобные параметры будут описаны в отдельной группе.
Список всех возможностей клиентов можно найти здесь: http://paludis.pioto.org/clients/index.html
Для обычного пользователя:
- paludis, клиент для управления пакетами и выполнения основных операция пакетного менеджера
- importare, клиент для создания в системе пакетов из произвольного набора файлов
- inquisitio, клиент для индексирования и поиска пакетов
- reconcilio, клиент для поиска и пересборки испорченных пакетов
Для разработчиков пакетов и мейнтейнеров:
TDB: - accerso, клиент для управления зеркалами
- adjutrix, набор утилит для разработчиков пакетов и команд, ответственных за поддержку архитектур
- instruo, клиент для создания метаданных
- qualudis, клиент для тестировщиков
- appareo, клиент для создания манифестов
Так же имеется набор экспериментальных утилит:
- playman, утилита, позволяющая получить подключить репозитории layman
paludis
paludis позволяет выполнять основные операции пакетного менеджера, такие как:
- выводить информацию о пакетах, репозиториях и среде
- устанавливать и удалять пакеты
- синхронизировать и индексировать репозитории
paludis работает с целями. Целью может являться один или несколько спецификаций пакетов или набор.
Основные сценарии использования
Синхронизировать репозитории:
paludis {-s|--sync} репозиторий... [-p|--pretend] [--continue-on-failure {if-fetch-only|never|if-satisfied|if-independent}]
Параметры:
- -s, --sync, переключиться в режим обновления репозиториев
- -p, --pretend, тестовый режим, не производить никаких изменений в системе
Следует помнить, что имя репозитория никак не связано с именем конфигурационного файла репозитория. Для первичной синхронизации большинства репозиториев потребуется использовать условное имя, состоящее из префикса x-[i/] и имени конфигурационного файла без суффикса [i].conf или .bash.
Пример:
Код: Выделить всё
# Первичное обновление репозитория mpd
paludis -s x-mpd
# Обновить репозитории gentoo и sunrise
paludis -s gentoo sunrise
# Обновить все репозитории
paludis -sУстановить или обновить:
paludis {-i|--install} цель... [-p|--pretend] [-1|--preserve-world] [-f|--fetch] [--continue-on-failure {if-fetch-only|never|if-satisfied|if-independent}]
Параметры:
- -i, --install, переключиться в режим установки или обновления одного или нескольких пакетов или набора
- -p, --pretend, тестовый режим, не производить никаких изменений в системе
- -1, --preserve-world, не изменять набор world
- -f, --fetch, скачать исходные файлы пакетов и остановиться
Пример:
Код: Выделить всё
# Установить или обновить все пакеты в системе
paludis -i everything
# Показать информацию о пакетах, которые будут установлены, но не выполнять саму установку
paludis -ip everything
# Скачать исходные файлы для пакета gnome и его зависимостей и остановиться // TODO: добавить пример с категорией gnome/*
paludis -if gnome
# Скачать исходные файлы app-editors/vim и его зависимостей, и установить их
paludis -i app-editors/vim
# Скачать исходные файлы sys-apps/paludis и его зависимостей, и установить их, но не записывать их в набор world
paludis -i1 sys-apps/paludisУдалить:
paludis {-u|--uninstall} цель... [-p|--pretend] [-1|--preserve-world] [--continue-on-failure {if-fetch-only|never|if-satisfied|if-independent}]
Параметры:
- -u, --uninstall, переключиться в режим удаления одного или нескольких пакетов или набора
- -p, --pretend, тестовый режим, не производить никаких изменений в системе
- -1, --preserve-world, не изменять набор world
Пример:
Код: Выделить всё
# Удалить gnome
paludis -i gnomeБолее полную информацию о клиенте можно найти в странице man или на сайте Paludis: http://paludis.pioto.org/clients/paludis.html.
importare
Клиент для установки пакетов в репозиторий формата installed_unpackaged. Позволяет установить и зарегистрировать в системе произвольный набор файлов под видом установленного пакета. В дальнейшем этот пакет будет подчиняться тем же правилам, что и пакеты в репозитории формата VDB. Это означает, что к с ним смогут работать такие клиенты, как paludis, inquisitio и т.д.
Очень мощное и удобное средство для установки приложений, собранных из исходных файлов вручную, для которых создание ебилда невозможно или неоправдано. Фактически, это аналог stow, XStow или checkinstall, интегрированный в Paludis. Можно распаковать какой-нибудь RPM-пакет из другого дистрибутива, и установить его с помощью importare в Gentoo Linux, не создавая при этом в системе мусора, в виде бесхозных файлов и не написав ни строки кода в ебилде.
Основные сценарии использования
Установить и зарегистрировать набор файлов:
importare [-i|--install] [-p|--pretend] [-1|--preserve-world] [--location путь] [-u|--install-under] категория/пакет [версия] [слот]
Параметры:
- -i, --install, переключиться в режим установки или обновления
- -p, --pretend, тестовый режим, не производить никаких изменений в системе
- -1, --preserve-world, не изменять набор world
- -l, --location, установить файлы из каталога путь, по умолчанию используется текущий каталог
- -u, --install-under, использовать каталог в качестве корня. Аналогично использованию --prefix для скрипта configure, созданного с помощью autoconf
- категория/пакет, версия, слов, категория и имя пакета, версия и слот, которые следует использовать при регистрации пакета в системе
Пример:
Код: Выделить всё
# Установить GRUB2
importare -l /tmp/grub-1.97/img sys-boot/grub 1.97 2
# Установить набор скриптов в /usr/local
importare -l /home/user/src/bash -u /usr/local unpackaged/utils 0.99inquisitio
inquisitio позволяет выполнить поиск пакетов, используя в качестве критериев поиска множество параметров, такие как: имя или категория пакета, описание, домашняя страница. inquisitio поддерживает регулярные выражения.
inquisitio работает с шаблонами. Шаблоном может являться текст или регулярное выражение.
Основной сценарий использования
Поиск:
inquisitio шаблон
Пример:
Код: Выделить всё
# inquisitio ccache
* dev-util/ccache
gentoo: 2.4-r6 2.4-r7 (2.4-r8)K* {:0}
installed: 2.4-r7 {:0}
Homepage: http://ccache.samba.org/
Description: fast compiler cache
Use flags: Build Options: -optional_tests split strip
Masked by keyword: ~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsdreconcilio
reconcilio может найти все пакеты, которые связаны с несуществующими библиотеками, и пересобрать их.
Основной сценарий использования
Поиск и пересборка:
reconcilio [-p|--pretend]
- -p, --pretend, тестовый режим, не производить никаких изменений в системе
Пример:
Код: Выделить всё
# reconcilio -p
Searching for broken packages...
No broken packages foundadjutrix
TODO
TODO: Техническое примечание: не смотря на то, что adjutrix для своей работы требует указания пути к пакетам (или используют текущий каталог) - он всё равно работает через ядро Paludis и не сканирует пакеты напрямую, как это делают большинство утилит Portage. adjutrix создаёт временный виртуальный репозитирий для указанного пути и выполняет поиск информации через ядро.
instruo
TODO
qualudis
TODO
appareo
TODO
playman
playman показывает список оверлеев layman и подключает их как репозитории Paludis.
Основные сценарии использования
Отображение списка:
playman [-l|--list]
- -l, --list, отобразить список оверлеев
Пример:
Код: Выделить всё
# playman -l
TODOПодключение оверлея как репозитория:
playman [-a|--add] оверлей
- -a, --add, создать файл с описанием репозитория
Пример:
Код: Выделить всё
# playman -a sunriseПриложения
Шпаргалка
Ниже приведены типичные шаги, которые позволят получить рабочий пакетный менеджер Paludis в дистрибутиве Gentoo Linux, в котором установлен Portage.
Автоматическая миграция с Portage на Paludis не рассматривается.
Предполагается, что используется архитектура x86_64, стандартное расположение каталогов и предпочитаемые автором флаги и настройки. Не забывайте, что головою можно не только есть и используйте значения, применимые для конкретной системы. Благо имена переменных (CFLAGS, CHOST и т.д.), ключевых слов (amd64) и семантика конфигурационных файлов (keywords.conf и package.keywords, use.conf и package.use) либо идентичны либо похожи, и при наличии некоторых навыков использования Portage, а также информации, предоставленной в предшествующих разделах, перенос аналогичных настроек Portage в Paludis становится тривиален.
Установка
Если используется стабильная ветка пакетов, то Paludis нужно размаскировать:
Код: Выделить всё
# mkdir -p /etc/portage
# echo "sys-apps/paludis" >> /etc/portage/package.keywords
# emerge paludisСоздание базовой конфигурации
Создание каталогов:
Код: Выделить всё
# mkdir -p /etc/paludis/repositories
# mkdir /var/cache/paludisСоздание конфигурационных файлов:
Код: Выделить всё
# cat > /etc/paludis/bashrc << BASHRC
> CFLAGS="-O2 -pipe -march=native"
> CXXFLAGS="${CFLAGS}"
> CHOST="x86_64-pc-linux-gnu"
> MAKEOPTS="-j17"
> BASHRC
# echo "world = /var/lib/portage/world" > /etc/paludis/environment.conf
# echo "*/* amd64" > /etc/paludis/keywords.conf
# echo "sys-apps/paludis ~amd64" >> /etc/paludis/keywords.conf
# echo "*/* *" > /etc/paludis/licenses.conf
# cat > /etc/paludis/repository_defaults.conf << CONF
> names_cache = /var/cache/paludis/names
> write_cache = /var/cache/paludis/write
> CONF
# cat > /etc/paludis/repositories/gentoo.conf << CONF
> format = ebuild
> location = /usr/portage
> profiles = /etc/make.profile
> sync = rsync://rsync.gentoo.org/gentoo-portage
> CONF
# cat > /etc/paludis/repositories/installed.conf << CONF
> format = vdb
> location = /var/db/pkg
> provides_cache = /var/cache/paludis/provides
> CONFВ отличии от Portage Paludis более осторожно подходит к созданию каталогов и установке режима доступа к ним. Он редко создаёт рабочие каталоги и никогда не меняет владельца и режим доступа к файлам и каталогам. Поэтому пользователю требует задать режим доступа явно. Следует помнить, что при запуске emerge владелец каталога, если для Portage те же самые каталоги, что и Paludis, будет неявно сброшен на пользователя portage:
Код: Выделить всё
# chgrp paludisbuild /usr/portage/distfiles
# chgrp paludisbuild /var/tmp/paludis
# chmod g+w /var/tmp/paludisПроверка
Индексирование пакетов:
Код: Выделить всё
# paludis --regenerate-installable-cache
Regenerating cache for virtuals...
Regenerating cache for gentoo...
# paludis --regenerate-installed-cache
Regenerating cache for installed-virtuals...
Regenerating cache for installed...Код: Выделить всё
# paludis -I
paludis 0.36.0
Paludis build information:
Compiler:
CXX: x86_64-pc-linux-gnu-g++ 4.3.2
CXXFLAGS: -O2 -pipe -march=native
LDFLAGS: -Wl,-O1
DATE: 2009-04-07T23:35:09+0400
Libraries:
C++ Library: GNU libstdc++ 20080827
Reduced Privs:
reduced_uid: 101
reduced_uid->name: paludisbuild
reduced_uid->dir: /var/tmp/paludis
reduced_gid: 1000
reduced_gid->name: paludisbuild
Paths:
DATADIR: /usr/share
LIBDIR: /usr/lib64
LIBEXECDIR: /usr/libexec
SYSCONFDIR: /etc
PYTHONINSTALLDIR:
RUBYINSTALLDIR: /usr/lib64/ruby/site_ruby/1.8/x86_64-linux
Environment:
Format: paludis
Config dir: /etc/paludis
World file: /var/lib/portage/world
Repository installed-virtuals:
format: installed_virtuals
root: /
Repository virtuals:
format: virtuals
Repository gentoo:
format: ebuild
location: /usr/portage
append_repository_name_to_write_cache: true
binary_destination: false
binary_keywords:
binary_uri_prefix:
builddir: /var/tmp/paludis
cache: /usr/portage/metadata/cache
distdir: /usr/portage/distfiles
eapi_when_unknown: 0
eapi_when_unspecified: 0
eclassdirs: /usr/portage/eclass
ignore_deprecated_profiles: false
layout: traditional
names_cache: /var/cache/paludis/names
newsdir: /usr/portage/metadata/news
profile_eapi_when_unspecified: 0
profiles: /etc/make.profile
securitydir: /usr/portage/metadata/glsa
setsdir: /usr/portage/sets
sync: rsync://rsync.gentoo.org/gentoo-portage
sync_options:
use_manifest: use
write_cache: /var/cache/paludis/write
Repository installed:
format: vdb
location: /var/db/pkg
builddir: /var/tmp/paludis
names_cache: /var/cache/paludis/names
provides_cache: /var/cache/paludis/provides
root: /
No packages were specified on the command line, so detailed information is not
available (Paludis can display detailed information for both installed and
installable packages).
So if you're reporting a bug in cat/pkg, use 'paludis --info cat/pkg' instead.Синхронизация
Код: Выделить всё
# paludis -s
Sync installed-virtuals
Sync installed-virtuals skipped
Sync virtuals
Sync virtuals skipped
Sync gentoo
Welcome to boobie.gentoo.org
Server Address : 91.186.30.235
Contact Name : mirror-admin@gentoo.org
Hardware : 2 x Intel(R) Xeon(R) CPU 3050 @ 2.13GHz, 3965MB RAM
Please note: common gentoo-netiquette says you should not sync more
than once a day. Users who abuse the rsync.gentoo.org rotation
may be added to a temporary ban list.
MOTD autogenerated by update-rsync-motd on Mon Mar 9 08:33:41 UTC 2009
gentoo-x86-portage Gentoo Linux Portage tree
gentoo-portage Gentoo Linux Portage tree mirror
gentoo-sec Gentoo Linux Security tree mirror
Sync gentoo completed
Sync installed
Sync installed skipped
* Regenerating cache for installable repositories...
Regenerating cache for virtuals...
Regenerating cache for gentoo...
* Done regenerating cache for installable repositories
* Cleaning write cache for ebuild format repositories...
* Done cleaning write cache for ebuild format repositories
* No unread news items foundОбновление
Теперь имеет смысл задать наиболее общие USE-флаги, задать некоторые дополнительные возможности Paludis, если они не были включены при первоначальной сборке и пересобрать Paludis, а также, поскольку у Portage и Paludis существуют свои, различные критерии блокировки пакетов (например, по EAPI), обновить устаревшие или вернуться к более старым пакетам:
Код: Выделить всё
# echo "*/* bash-completion vim-syntax visibility" > /etc/paludis/use.conf
echo "sys-apps/paludis inquisitio ruby-bindings" >> /etc/paludis/use.confКод: Выделить всё
# paludis -i everything --dl-reinstall if-use-changedКто-то захочет использовать вариант безусловной пересборки всех установленных пакетов:
Код: Выделить всё
# paludis -i everything --dl-reinstall alwaysНо для начала стоит посмотреть на список пакетов, которые будут обновлены или установлены:
Код: Выделить всё
# paludis -i everything --dl-reinstall if-use-changed --log-level silent -p
Building target list...
Building dependency list...
These packages will be installed:
* dev-libs/pcre++ [N 0.9.5-r1]
Reasons: *sys-apps/paludis-0.36.0:0::gentoo
build_options: -optional_tests split strip
"A C++ support library for libpcre"
376.29 kBytes to download
* dev-ruby/ruby-config [N 0.3.2]
Reasons: *dev-lang/ruby-1.8.6_p287-r5:1.8::gentoo
build_options: -optional_tests split strip
"Utility to switch the ruby interpreter being used"
* dev-lang/ruby :1.8 [N 1.8.6_p287-r5]
Reasons: *sys-apps/paludis-0.36.0:0::gentoo
berkdb -debug -doc -emacs -examples gdbm ipv6 -rubytests -socks5 ssl -threads -tk -xemacs build_options: -optional_tests split strip
"An object-oriented scripting language"
3.77 MBytes to download
* virtual/ruby::virtuals :1.8 [D 1.8.7_p72-r11 (for dev-lang/ruby:1.8::gentoo) -> 1.8.6_p287-r5 (for dev-lang/ruby:1.8::gentoo)]
Reasons: *dev-ruby/ruby-config-0.3.2:0::gentoo
* sys-apps/paludis [R 0.36.0] <everything>
bash-completion -doc inquisitio* -pink -portage -python-bindings -qa ruby-bindings* vim-syntax visibility -xml -zsh-completion build_options: -optional_tests split strip
* virtual/portage::virtuals [D 2.2_rc28 (for sys-apps/portage:0::gentoo) -> 0.36.0 (for sys-apps/paludis:0::gentoo)] <system>
Total: 6 packages (3 new, 2 downgrades, 1 rebuild), 4.14 MBytes to download
General sets:
* everything: All installed packages
* system: Packages that are part of the base system
USE:
* berkdb: Adds support for sys-libs/db (Berkeley DB for MySQL)
* debug: Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml
* doc: Adds extra documentation (API, Javadoc, etc)
* emacs: Adds support for GNU Emacs
* examples: Install examples, usually source code
* gdbm: Adds support for sys-libs/gdbm (GNU database libraries)
* inquisitio: Enable inquisitio, the search client
* ipv6: Adds support for IP version 6
* ruby-bindings: Enable Ruby bindings.
* rubytests: Install ruby tests that can only be run after ruby is installed
* socks5: Adds support for the socks5 proxy
* ssl: Adds support for Secure Socket Layer connections
* threads: Adds threads support for various packages. Usually pthreads
* tk: Adds support for Tk GUI toolkit
* xemacs: Add support for XEmacs
Checking for possible errors......
* No unread news items foundА тем, у кого имееются проблемы с сетью, имеет смысл сначала убедиться, что все нужные для сборки файлы, скачены:
Код: Выделить всё
# paludis -i everything --dl-reinstall if-use-changed --log-level silent -f
Building target list...
Building dependency list...
These packages will be installed:
* dev-libs/pcre++ [N 0.9.5-r1]
build_options: -optional_tests split strip
"A C++ support library for libpcre"
376.29 kBytes to download
* dev-ruby/ruby-config [N 0.3.2]
build_options: -optional_tests split strip
"Utility to switch the ruby interpreter being used"
* dev-lang/ruby :1.8 [N 1.8.6_p287-r5]
berkdb -debug -doc -emacs -examples gdbm ipv6 -rubytests -socks5 ssl -threads -tk -xemacs build_options: -optional_tests split strip
"An object-oriented scripting language"
3.77 MBytes to download
* virtual/ruby::virtuals :1.8 [D 1.8.7_p72-r11 (for dev-lang/ruby:1.8::gentoo) -> 1.8.6_p287-r5 (for dev-lang/ruby:1.8::gentoo)]
* sys-apps/paludis [R 0.36.0] <everything>
bash-completion -doc inquisitio* -pink -portage -python-bindings -qa ruby-bindings* vim-syntax visibility -xml -zsh-completion build_options: -optional_tests split strip
* virtual/portage::virtuals [D 2.2_rc28 (for sys-apps/portage:0::gentoo) -> 0.36.0 (for sys-apps/paludis:0::gentoo)] <system>
Total: 6 packages (3 new, 2 downgrades, 1 rebuild), 4.14 MBytes to download
USE:
* berkdb: Adds support for sys-libs/db (Berkeley DB for MySQL)
* debug: Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml
* doc: Adds extra documentation (API, Javadoc, etc)
* emacs: Adds support for GNU Emacs
* examples: Install examples, usually source code
* gdbm: Adds support for sys-libs/gdbm (GNU database libraries)
* inquisitio: Enable inquisitio, the search client
* ipv6: Adds support for IP version 6
* ruby-bindings: Enable Ruby bindings.
* rubytests: Install ruby tests that can only be run after ruby is installed
* socks5: Adds support for the socks5 proxy
* ssl: Adds support for Secure Socket Layer connections
* threads: Adds threads support for various packages. Usually pthreads
* tk: Adds support for Tk GUI toolkit
* xemacs: Add support for XEmacs
Checking for possible errors......
(1 of 4) Fetching dev-libs/pcre++-0.9.5-r1:0::gentoo
Trying to fetch 'http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/pcre++-0.9.5.tar.gz' to 'pcre++-0.9.5.tar.gz'...
* Attempting resume using /usr/portage/distfiles/pcre++-0.9.5.tar.gz.-PARTIAL-
wget -T 30 -t 1 --continue -O /usr/portage/distfiles/pcre++-0.9.5.tar.gz.-PARTIAL- http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/pcre++-0.9.5.tar.gz
--2009-04-06 23:40:10-- http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/pcre++-0.9.5.tar.gz
Resolving ftp.belnet.be... 193.190.67.15, 2001:6a8:a40::21
Connecting to ftp.belnet.be|193.190.67.15|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 381589 (373K), 136373 (133K) remaining [application/x-gzip]
Saving to: `/usr/portage/distfiles/pcre++-0.9.5.tar.gz.-PARTIAL-'
[ skipping 200K ]
200K ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,. .......... 67% 315K 2s
250K .......... .......... .......... .......... .......... 80% 211K 0s
300K .......... .......... .......... .......... .......... 93% 428K 0s
350K .......... .......... .. 100% 489K=0.6s
2009-04-06 23:40:11 (239 KB/s) - `/usr/portage/distfiles/pcre++-0.9.5.tar.gz.-PARTIAL-' saved [381589/381589]
mv -f /usr/portage/distfiles/pcre++-0.9.5.tar.gz.-PARTIAL- /usr/portage/distfiles/pcre++-0.9.5.tar.gz
Trying to fetch 'http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/pcre++-0.9.5-patches.tar.bz2' to 'pcre++-0.9.5-patches.tar.bz2'...
wget -T 30 -t 1 --continue -O /usr/portage/distfiles/pcre++-0.9.5-patches.tar.bz2.-PARTIAL- http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/pcre++-0.9.5-patches.tar.bz2
--2009-04-06 23:40:11-- http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/pcre++-0.9.5-patches.tar.bz2
Resolving ftp.belnet.be... 193.190.67.15
Connecting to ftp.belnet.be|193.190.67.15|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3733 (3.6K) [application/x-tar]
Saving to: `/usr/portage/distfiles/pcre++-0.9.5-patches.tar.bz2.-PARTIAL-'
0K ... 100% 55.8K=0.07s
2009-04-06 23:40:12 (55.8 KB/s) - `/usr/portage/distfiles/pcre++-0.9.5-patches.tar.bz2.-PARTIAL-' saved [3733/3733]
mv -f /usr/portage/distfiles/pcre++-0.9.5-patches.tar.bz2.-PARTIAL- /usr/portage/distfiles/pcre++-0.9.5-patches.tar.bz2
Checking 'pcre++-0.9.5.tar.gz'... ok
Checking 'pcre++-0.9.5-patches.tar.bz2'... ok
...Вероятно, что большинство пользователей, почти сразу, предпочтёт установить ccache:
Код: Выделить всё
# paludis -i ccacheИ подключить его к Paludis:
Код: Выделить всё
# echo 'CCACHE_DIR="/var/tmp/ccache"' >> /etc/paludis/bashrc
# echo 'PATH="/usr/lib64/ccache/bin:${PATH}"' >> /etc/paludis/bashrcПроверка работы ccache:
Код: Выделить всё
# paludis -i1 ccache
...
CCACHE=/var/tmp/ccache ccache -s
cache directory /var/tmp/ccache
cache hit 0
cache miss 31
called for link 1
autoconf compile/link 14
no input file 3
files in cache 62
cache size 184 Kbytes
max cache size 976.6 MbytesАналогичным образом устанавливается и подключается и distcc.
Заключение
Пакетный менеджер Paludis существует уже не первый год, и он далеко не новинка. В публичном доступе этот менеджер появился в начале 2006-го года.
Многие из оригинальных идей разработчиков Paludis вошли в современные версии Portage, среди них, например:
- поддержка PMS/EAPI
- расширенная спецификация пакетов, такие как категория/имя[флаг]
- новая система манифестов - Manifest2
- аналог bashrc
- поддержка Git, который используется по умолчанию для синхронизации дерева пакетов в Funtoo - одном из производных дистрибутивов Gentoo
Если судить по статистике на официальном форуме Gentoo Linux - http://forums.gentoo.org/, то около половины пользоватей Gentoo Linux предпочитают использовать Paludis в качестве своего основного пакетного менеджера.
Данная статья рассматривает лишь некоторую, меньшую, часть возможностей Paludis. За бортом осталось техническое описание хуков, синхронизаторов, фетчеров. Отличия в конфигурировании Paludis для других дистрибутивов, таких как Exherbo. Возможностей создания и использования множественной среды окружения Paludis. FAQ. Paludis API и многое другое. Почти всё это можно найти на официальном сайте Paludis - http://paludis.pioto.org/.
Комментарии, дополнения, информация об ошибках, замечания о неточностях и, главное, вопросы, в частности касающиеся непонятных моментов, приветствуются. Информацию о контактах можно найти в профиле автора.
Благодарности
- прежде всего Juliette, за присланное год назад сообщение с непонятным словом Paludis, ссылкой на обсуждение возможностей этого пакетного менеджера и комментарием "Это обязательно нужно попробовать!"
- некоторым постоянным участникам Jabber-конференции, которые не давали забыть про намерение написать некое краткое русскоязычное руководство по установке Paludis, в частности Dimanish