Paludis

Paludis
Paludis
Скриншот процесса работы Paludis
Процесс работы Paludis
Тип

Менеджер пакетов

Разработчик

Ciaran McCreesh

Написана на

С++

Операционная система

кроссплатформенный

Последняя версия

0.76 (16 Июня 2012)

Лицензия

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 resolve 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)

Примечания

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Paludis" в других словарях:

  • Mugilogobius paludis —   Mugilogobius paludis Clasificación científica Reino …   Wikipedia Español

  • Hesperochernes paludis —   Hesperochernes paludis Clasificación científica Reino …   Wikipedia Español

  • Idiogaryops paludis —   Idiogaryops paludis Clasificación científica Reino …   Wikipedia Español

  • AMPHIPOEA FUCOSA FRR. (APAMEA PALUDIS TUTT, HYDRAECIA FUCOSA) - СОВКА ЯРОВАЯ — см. Amphipoea fucosa Frr. (Apamea paludis Tutt, Hydraecia fucosa) Совка яровая (рис. 181). Бабочка. Передние крылья от ржаво до красновато бурых. Перевязи тонкие, волокнистые. Почковидное пятно оранжевое или белое, круглое пятно красноватое,… …   Насекомые - вредители сельского хозяйства Дальнего Востока

  • Лимносцелис — ? † Лимносцелис Limnoscelis paludis …   Википедия

  • Portage — Работа системы Portage Тип Система управления пакетами …   Википедия

  • Limnoscelis — Taxobox name = Limnoscelis fossil range = Early Permian image width = 250px image caption = Limnoscelis paludis regnum = Animalia phylum = Chordata superclassis = Tetrapoda unranked ordo = Reptiliomorpha ordo = Diadectomorpha familia =… …   Wikipedia

  • Diadectidae — Diadectomorpha Lebendrekonstruktion von Diadectes, ein Diadectidae aus dem frühen Perm von Nordamerika Zeitraum Oberer Karbon bis Unterer Perm Fossilfundorte …   Deutsch Wikipedia

  • Lapalud — 44° 18′ 19″ N 4° 41′ 23″ E / 44.3052777778, 4.68972222222 …   Wikipédia en Français

  • Pallud — 45° 41′ 14″ N 6° 23′ 43″ E / 45.6872222222, 6.39527777778 …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»