WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Paludis

Процесс работы Paludis
Тип Менеджер пакетов
Разработчик Ciaran McCreesh
Написана на С++
Операционная система кроссплатформенный
Последняя версия 2.6.0 (2 мая 2016)
Лицензия GNU GPL
Сайт paludis.exherbo.org

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?

В коде portage слишком много дефектов, чтобы его можно было исправить. Это огромное мессиво спагетти-образного процедурного кода без какого-либо дизайна. Он повсеместно и везде опирается на нестандартные трюки, поэтому любое его изменение способно сильно нарушить работоспособность в, казалось бы, никак несвязных областях. Он практически целиком недокументирован, внутренние переменные нелепы и часто уже не отражают реалии, которые код выполняет в настоящее время.[3]

Ciaran McCreesh

Особенности

Следует заметить, что с момента появления paludis прошло много времени и, несмотря на то, что paludis был новатором, часть функциональности свойственной paludis на текущий момент уже реализовано в portage. Однако большинство проблем (с точки зрения paludis) в portage не может быть исправлено, так как они заложены в саму основу portage (defective by design). Также, большинство отсутствующей функциональности (против portage), является намеренной, так как она была бы или избыточной, или ошибочной («Нет PORTAGE_NICENESS, учите man nice и bashrc. Нет же GCC_NICENESS и т. д.»).

Для пользователя

  • Предсказуемость и конфигурация «заранее», а не «во время».
  • Быстродействие — написан на C++.
  • Высокая скорость разработки и отсутствие задержек связанных с бюрократией.
  • Небольшие собственные зависимости и грамотная интеграция всех инструментов, в том числе GLSA.
  • Изначально поддерживает грамотное обращение с множественными репозиториями.
  • Профили связанные с репозиториями.
  • Документированность и чёткость кода.
  • Многочисленные хуки для запуска кода.
  • Определяемые пользователем наборы пакетов.
  • Возможность продолжить установку коллекции пакетов после сбоя или продолжать прерванную компиляцию гораздо более гибко, чем это возможно в Portage.
  • Способность понять, какие действительные зависимости у пакет, а не основываясь на довольно грубом выводе опции «--tree» в Portage.
  • Более логично построенные механизмы --query и --pretend.
  • Безопасная установка/удаление пакетов выставляющих *id-флаги на файлах, чтобы в вашей системе не оставались уязвимости даже после того, как уязвимое приложение было заменено.
  • Возможность указывать и использовать SLOT-, USE-, репозиторно- и версионно-основанные зависимости в ebuild’ах.
  • Возможность автоматически обновлять живые пакеты (SCM, *-9999) через заданный период времени.
  • Управление пакетами, даже если ebuild(ы) уже не доступен/ны.

Для разработчиков Ebuild

  • Полное и правильное разрешение круговой зависимости.
  • Глубокое разрешение зависимостей, даже если обновлено не всё.
  • Поддержка «experimental» (читай: 'still not implemented in Portage') EAPI-предложения (use dependencies, ranged version specs, -scm and -try version specs, src_uri arrows etc).
  • Возможность доставки новостей до конечного потребителя.
  • Более полезная диагностика.

Для программистов

  • Независимые API, библиотеки и клиенты. К качестве подтверждения преимуществ такого подхода — срок в полгода на написание, тест и миграцию на клиент cave.
  • Здравомыслящий OO API документация и примеры кода.
  • Соответствующие интерфейсы для различных видов repository.
  • Наборы тестов и обширный статический анализ, чтобы проверить влияние изменений.
  • Тип безопасных интерфейсов, для отлова ошибок программирования, во время компиляции.
  • Выбор языка программирования для внешних инструментов.[4]

Использование

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)

См. также

Примечания

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии