Русская Википедия:Paludis
Шаблон:Карточка программы Paludis — менеджер программных пакетов, подхода «построение из исходных кодов» (source-based). Применяется в ОС Exherbo и, в качестве альтернативы portage, на Gentoo (оба применяют ядро Linux). В активном развитии с января 2006 года[1].
Происхождение
Изначально Paludis представлял собой инструмент для разрешения проблем с зависимостями и использовался как дополнение к Portage в Gentoo GNU/Linux.
Однако позже (не в последнюю очередь ввиду разногласий между разработчиком и комитетом Gentoo) превратился в самостоятельную систему управления пакетами. В качестве причин фигурируют:
- бюрократия Gentoo,
- ошибки в дизайне,
- неполноценность/избыточность и запутанность исходных кодов emerge,
- личный эгоизм некоторых участников комитета Gentoo,
- страх перед изменениями.[2]
После долгой разработки, начиная с версии Paludis 0.60.0 клиент paludis и все поставляемые с ним утилиты были заменены на значительно более понятный клиент cave. Сave можно кратко охарактеризовать как: «Клиент доступа ко всем возможностям системы paludis, схожий по дизайну с aptitude, а синтаксисом с git». Система по прежнему носит название «Paludis», но клиент paludis и все утилиты были убраны.
Почему бы не исправить portage?
Особенности
Следует заметить, что с момента появления paludis прошло много времени и, несмотря на то, что paludis остается новатором, часть функциональности свойственной paludis на текущий момент уже реализовано в portage. Однако большинство проблем (с точки зрения paludis) в portage не может быть исправлено, так как они заложены в саму основу portage (defective by design).
Для пользователя
- Предсказуемость и конфигурация «заранее», а не «во время».
- Быстродействие — написан на C++.
- Высокая скорость разработки и отсутствие задержек связанных с бюрократией.
- Небольшие собственные зависимости и грамотная интеграция всех инструментов, в том числе GLSA.
- Изначальная поддержка нескольких репозиториев.
- Профили связанные с репозиториями.
- Документированность и чистота кода.
- Многочисленные хуки для запуска пользовательских действий.
- Определяемые пользователем наборы пакетов.
- Возможность продолжить установку пакетов после сбоя или продолжить прерванную компиляцию гораздо более гибко, чем это возможно в Portage.
- Возможность понять, какие действительные зависимости у пакета, а не основываясь на довольно грубом выводе опции «--tree» в Portage.
- Более логично построенные механизмы
--query
и--pretend
. - Безопасная установка/удаление пакетов выставляющих *id-флаги на файлах, чтобы в вашей системе не оставались уязвимости даже после того, как уязвимое приложение было заменено.
- Возможность указывать и использовать SLOT-, USE- для отдельных репозиториев, категорий и пакетов.
- Изначальная поддержка для пакетов, устанавливаемых из систем контроля версий. Возможность автоматически обновлять их через заданный период времени.
- Управление пакетами, даже если ebuild(ы) уже не доступен/ны.
Для разработчиков Ebuild
- Полное и правильное разрешение циклических зависимостей.
- Глубокое разрешение зависимостей, даже если обновлено не всё.
- Поддержка «экспериментальных» (читай: 'still not implemented in Portage') EAPI (use dependencies, ranged version specs, -scm and -try version specs, src_uri arrows etc).
- Возможность доставки новостей до конечного потребителя.
- Более полезная диагностика.
Для программистов
- Независимые API, библиотеки и клиенты. К качестве подтверждения преимуществ такого подхода — срок в полгода на написание, тест и миграцию на клиент cave.
- Практичный ООП API, документация и примеры кода.
- Соответствующие интерфейсы для различных видов репозиториев.
- Наборы тестов и обширный статический анализ, чтобы проверить влияние изменений.
- Тип безопасных интерфейсов, для отлова ошибок программирования во время компиляции.
- Выбор языка программирования для внешних инструментов.[3]
Использование
Paludis на данный момент имеет только один клиент — cave (лат.). Список всех клиентов можно найти здесь.
Обновление базы данных (синхронизация):
cave sync
Вывод списка установленных пакетов:
cave show installed-packages
Установка пакетов:
cave resolve пакет -x
Вывод наборов (sets):
# cave print-sets
insecurity
insecurity::gentoo
installed-packages
installed-packages::installed
installed-slots
installed-slots::installed
security
security::gentoo
system
system::gentoo
world
world::environment
Пример
Пример работы клиента cave пакетного менеждера paludis:
# cave show paludis
* sys-apps/paludis
::arbor 0.60.4(~) 0.62.2(~) 0.64.1(~)* (scm)R(~) {:0}
::installed 0.64.1 {:0}
sys-apps/paludis-0.64.1:0::installed (system)
Homepage http://paludis.pioto.org/
Summary Paludis, the one true package mangler
From repositories arbor
Installed time Thu Jun 23 21:57:59 UTC 2011
Installed using paludis-0.64.0
Licences GPL-2 vim-syntax? ( vim )
Options
OPTIONS
(bash-completion) Enable bash-completion support
(-doc) Adds extra documentation (API, Javadoc, etc)
(-gemcutter) Enable Gemcutter-based support for ruby gems
(pbin) Experimental binary package support
(-pink) Use an obnoxious girly colour scheme
(-prebuilt-documentation) Use prebuilt documentation
(-python) Adds support/bindings for the Python language
(-ruby) Adds support/bindings for the Ruby language
(-search-index) Enable cave search --index
(vim-syntax) Pulls in related vim syntax scripts.
(xml) Enable parsing of xml files, for GLSA and metadata.xml support, only useful with Gentoo repositories
(-zsh-completion) Install completion files for the Z shell
Build Options
-trace Trace actions executed by the package (very noisy, for debugging broken builds only)
См. также
Примечания
Ссылки
- Официальный сайт.Шаблон:Ref-en
- Блог главного разработчика paludis.Шаблон:Ref-en
- Установка и настройка paludis.Шаблон:Ref-ru
- Установка и настройка paludis.Шаблон:Ref-en