Пакетный менеджер Portage (Gentoo)

Опубликовано August@Karro - чт, 02/11/2021 - 21:13
Portage — основная система управления пакетами в Gentoo Linux. Аналог системы портов FreeBSD. Представляет собой набор утилит на Python и Bash.

Основной пользовательский интерфейс Portage (Gentoo) — консольная программа 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 метаданными о пакете и, возможно, нескольких других некрупных файлов, нужных для сборки пакета (например, патчей). Кроме того, в дереве портежей хранятся все лицензии, которые используются пакетами. 

Чтобы установить пакет Gentoo достаточно набрать:

emerge имя_пакета имя_пакета2

Но это самый простой вариант, emerge поддерживает множество параметров, рассмотрим только те, которые касаются установки пакетов:

  • -a - Спрашивать перед установкой;
  • -v - Показать более подробную информацию;
  • -p - Не устанавливать пакет, только показать информацию;
  • -b - Только скомпилировать пакет без установки;
  • -O - Установить пакет, не учитывая зависимости;
  • -o - установить только зависимости пакета;
  • -l --oneshot - Установить пакет, но не добавлять его в файл world;
sudo emerge -av имя_пакета

Программа выведет всю доступную информацию о пакете, USE флаги, полное имя, размер, категорию и т д. 

Если установка программ в Gentoo не нужна, а нужно только посмотреть информацию о пакете можно использовать опцию -p:

sudo emerge -pv имя_пакета

Для ручного обновления системных библиотек лучше использовать опцию -l, чтобы не засорять файл world лишними записями:

sudo emerge -avl имя_пакета

Если к пакету необходимо применить дополнительные USE флаги можно указать их прямо в команде с помощью локальной переменной:

USE="флаг1 флаг2" sudo emerge имя_пакета

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

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


revdep-rebuild из пакета gentoolkit — служит для проверки целостности динамического связывания.

 

Последние материалы