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/
обычно помещаются файлы дистрибутивов программ, скачиваемые во время установки пакетов.