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

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

Работа системы Portage
Тип Система управления пакетами
Автор Zac Medico, Ned Ludd, Mike Frysinger, Mounir Lamouri
Написана на Python
Операционная система Gentoo Linux и Gentoo/FreeBSD
Аппаратная платформа POSIX-совместимые/Python
Последняя версия 2.2.8-r2 (4 марта 2015)
Тестовая версия 2.2.18 (4 марта 2015)
Лицензия GNU General Public License v2
Сайт gentoo.org/proj/en/porta…

Portage — основная система управления пакетами в Gentoo Linux. Аналог системы портов FreeBSD. Представляет собой набор утилит на Python и Bash, призванных облегчить и упорядочить установку программного обеспечения из исходных кодов или бинарных пакетов, с учётом всех зависимостей.

Основной пользовательский интерфейс Portage — консольная программа emerge, которая позволяет устанавливать новые пакеты с учётом зависимостей и с возможностью управления вариантами установки — например с поддержкой определённых функций или без поддержки ненужных функций (управление параметрами сборки осуществляется через так называемые USE-флаги), удалять ненужные пакеты, обновлять установленные пакеты, проводить синхронизацию с деревом портежей (по протоколу rsync) и т. д. Программа ebuild служит интерфейсом низкого уровня к Portage, а emerge — высокоуровневая оболочка для неё.

Главный конфигурационный файл системы Portage — /etc/portage/make.conf. В нем настраиваются основные параметры компиляторов и дополнительные возможности их использования (например, применением ccache, distcc), установки USE-флагов, HTTP-прокси, FTP-прокси, SYNC, ACCEPT_KEYWORDS и других, необходимых для работы системы Portage.

Другие конфигурационные файлы системы находятся в /etc/portage/ и позволяют более тонко конфигурировать различные аспекты системы portage.

Дерево портежей

Дерево портежей обычно располагается в каталоге /usr/portage/ и представляет собой упорядоченную систему каталогов-категорий пакетов (вида app-emacs, dev-php), в каждом из которых содержатся каталоги отдельных пакетов. В дереве каждый пакет состоит из набора ebuild-файлов, файла Changelog данного пакета, файла metadata.xml c метаданными о пакете и, возможно, нескольких других некрупных файлов, нужных для сборки пакета (например, патчей).

Кроме того, в дереве портежей хранятся все лицензии, которые используются пакетами.

В каталог /usr/portage/distfiles/ обычно помещаются файлы дистрибутивов программ, скачиваемые во время установки пакетов.

Оверлеи

Оверлеи представляют собой хранилища пакетов, не включённые в основное дерево портежей. Обычно туда включают более новые версии программ или те программы, которых ещё нет в официальном дереве, live-версии, нестандартные расширения и патчи. Оверлеи могут быть локальными — присутствовать только на компьютере пользователя. Один из вариантов применения локального оверлея — установка ebuild-файлов, не включённых в какой-либо публичный оверлей, либо тестирование ebuild-файлов. Для упрощения работы с оверлеями служит утилита layman.

live-пакеты

Обычно при установке некоторой версии программы скачивается архив с исходными кодами, соответствующий устанавливаемой версии. В случае с live-пакетами исходные коды получаются из системы контроля версий данной программы. Таким образом, live-пакеты позволяют иметь самую что ни на есть свежую программу. Такие пакеты, как правило, имеют версию 9999.

В случае, если есть несколько веток разработки программы, live-пакет может также использовать не основную ветку. Например, для библиотеки Qt есть live-пакеты, берущие исходные коды из ветки на официальные версии 4.6, 4.7 и самую «передовую» ветку. Такие пакеты имеют версии 4.6.9999, 4.7.9999 и 4.9999 соответственно.

Утилиты

revdep-rebuild

revdep-rebuild из пакета gentoolkit — служит для проверки целостности динамического связывания. При обновлении библиотек нередка ситуация, когда программа или другая библиотека, зависящая от обновлённой, продолжает ссылаться на предыдущую версию. Таким образом, нарушается работоспособность программ. Утилита revdep-rebuild позволяет автоматически найти подобные «сломанные» программы и перекомпилировать их.

layman

layman служит для упрощения работы с оверлеями, позволяя добавлять, удалять и синхронизировать оверлеи одной командой.

equery, eix, q

Программы equery и q, а также набор программ eix служит для ускорения и автоматизации стандартных задач вроде поиска по дереву портежей, формирования списка установленных пакетов, принадлежащих какой-либо категории, и т. д.

Пример

Пример работы программы emerge:

# emerge -pv postfix

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] mail-mta/postfix-2.3.6  USE="hardened mysql pam ssl -cdb -dovecot-sasl -ipv6 -ldap -mailwrapper -mbox -nis -postgres
 -sasl (-selinux) -vda" 2,719 kB
[blocks B     ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.3.6)

Total: 1 package (1 new, 1 block), Size of downloads: 2,719 kB

Критика Portage

Низкая скорость системы Portage[источник не указан 2734 дня], а также отсутствие учёта обратных зависимостей устанавливаемых и обновляемых пакетов, привело к созданию проекта Paludis[1] — замены Portage, написанной на C++ и обладающей более высокой скоростью работы[источник не указан 2734 дня] и дополнительными возможностями (которые, впрочем, в большинстве своём присутствуют в нестабильных версиях Portage 2.2.x). Также существует проект pkgcore[2].

FrontEnd

См. также

Ссылки

  1. Gentoo wiki Paludis Архивировано 2 августа 2010 года. (англ.)
  2. Gentoo wiki Pkgcore Архивировано 11 сентября 2009 года. (англ.)

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

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

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




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

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

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