Interested Article - Portage

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 -файлов. Для упрощения работы с оверлеями служит утилита .

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

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

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

FrontEnd

См. также

Ссылки

  • (рус.)
  1. . Дата обращения: 25 января 2023. 25 января 2023 года.
  • (рус.)
  • от 17 января 2014 на Wayback Machine (англ.)
  • (рус.)
  • (рус.)
Источник —

Same as Portage