PORTAGE¶
НАЗВАНИЕ¶
portage - главный инструмент GentooОПИСАНИЕ¶
В настоящее время portage использует большое количество конфигурационных файлов; со многими из них незнакомы пользователи и, во многих случаях, даже разработчики. В данном руководстве мы попытались собрать воедино все сведения о portage, которые позволили бы максимально эффективно использовать этот инструмент. Заметьте, что здесь мы описываем только те возможности, которые не имеют собственной справочной страницы.
Все файлы в каталоге make.profile могут быть тонко сконфигурированы при использовании каскадных профилей с помощью родительских профилей. Подробнее см. здесь:
Примечание:
Данное руководство не содержит информации о том, как установить ту или иную программу; если вам нужна именно она, обратитесь к справке по emerge(1).
ПАРАМЕТРЫ¶
/etc/
make.conf (5)
/etc/make.profile/ или /etc/portage/make.profile/
значения для отдельных адресов помещаются в /etc/portage/profile/
deprecated eapi make.defaults packages packages.build package.accept_keywords package.keywords package.mask package.provided package.unmask package.use package.use.force package.use.mask parent profile.bashrc use.force use.mask virtuals
/etc/portage/
bashrc categories color.map license_groups make.conf mirrors modules package.accept_keywords package.env package.keywords package.license package.mask package.properties package.unmask package.use repos.conf
/etc/portage/env/
файлы конфигурации интерпретатора, bashrc, для отдельных пакетов
/etc/portage/profile/
переопределение /etc/make.profile/ для отдельных адресов
/usr/portage/metadata/
layout.conf
/usr/portage/profiles/
arch.list categories info_pkgs info_vars license_groups make.defaults package.mask package.unmask package.use package.use.force package.use.mask profiles.desc repo_name thirdpartymirrors use.desc use.force use.local.desc use.mask
/usr/share/portage/config/
make.globals
/var/cache/edb/
различные файлы внутреннего кэша
/var/db/pkg/
база данных для отслеживания установленных пакетов
/var/lib/portage/
config world world_sets
ГЛОССАРИЙ¶
В данном руководстве вы можете столкнуться с терминами, которые вам незнакомы или специфичны для Portage. Обращайтесь к указанным ниже man-страницам для более развернутой информации.
Атом зависимости
Атом имеет синтаксис следующего вида: либо категория/пакет, либо _оператор категория/пакет-версия. В качестве суффикса атом может иметь обозначение слота.
Подробнее см. ebuild(5).
Синтаксис расширенного атома
Следующие расширения синтаксиса атома поддерживаются только в пользовательских файлах конфигурации и в аргументах таких консольных команд как emerge(1):
Ограничения репозитория
Атомы с такими ограничениями содержат в конце, через разделитель '::', имя репозитория. Каждое имя репозитория должно соответствовать значению записи repo_name одного из репозиториев, сконфигурированных с помощью переменной PORTDIR или PORTDIR_OVERLAY (см. make.conf(5)).
Примеры:
# пакет sed из репозитория 'gentoo' sys-apps/sed::gentoo # пакет kdelibs из репозитория 'kde-testing' kde-base/kdelibs::kde-testing # пакет empathy из репозитория 'gnome' net-im/empathy::gnome
Шаблоны с подстановочными знаками
Атомы, содержащие подстановочные знаки, имеют синтаксис вида категория/пакет, где подстановочный знак '*' заменяет произвольное число из ряда допустимых. Разрешается использование нескольких символов '*', но они не должны стоять рядом друг с другом.
Примеры:
# любой пакет из категории 'sys-apps' sys-apps/* # любой пакет с именем 'zlib' из любой категории */zlib # любой пакет из категории, начинающейся с 'net-' net-*/* # любой пакет из любой категории */* # любой пакет из репозитория 'gentoo' */*::gentoo
KEYWORD
Каждая архитектура имеет свое ключевое слово (KEYWORD).
Подробнее см. ebuild(5)
virtual
Атом зависимости, который принадлежит категории виртуальных пакетов. Используются в том случае, когда разрешить необходимую зависимость могут сразу несколько пакетов, но требуется лишь один.
Подробнее см. ebuild(5)
НЕКОТОРЫЕ ВАЖНЫЕ ФАЙЛЫ¶
/etc/
make.conf
Глобальные редактируемые настройки, передаваемые Portage. См. make.conf(5).
/etc/make.profile/ или /etc/portage/make.profile/
Как правило, это лишь символическая ссылка на правильный профиль, хранящийся в каталоге /usr/portage/profiles/. Поскольку этот файл является частью дерева портежей, его можно легко обновить или сгенерировать заново, запустив `emerge --sync`. Он определяет профиль (обычно речь идет о параметрах, специфичных для данной архитектуры). Если вы хотите использовать свой особый профиль, вам необходимо создать свой собственный каталог /etc/make.profile/ и заполнить его. Однако, если вы намерены ограничиться переопределением некоторых настроек, используйте путь /etc/portage/profile/ (он поддерживает те же типы файлов, что и /etc/make.profile/, за исключением родительских записей). НЕ РЕДАКТИРУЙТЕ настройки в /etc/make.profile/, поскольку после очередного `emerge --sync` они будут ПОТЕРЯНЫ. Если существуют два пути - и /etc/make.profile/, и /etc/portage/make.profile/, будет предпочтен /etc/make.profile/.
Любые файлы в этом каталоге, каталоги других профилей или высокоуровневые profiles-каталоги, имена которых начинаются с "package." или "use.", могут быть не только файлом, но и каталогом. Если это каталог, все файлы в нем будут отсортированы по имени в прямом алфавитном порядке и выведены вместе, как если бы они представляли собой один файл. Обратите внимание, что такое поведение поддерживается только в версиях portage выше 2.1.6.7, причем на данный момент оно не включено в PMS.
Пример:
${PORTDIR}/profiles/package.mask/removals ${PORTDIR}/profiles/package.mask/testing
deprecated
Если этот файл присутствует, значит, профиль помечен как устаревший, более не поддерживаемый разработчиками Gentoo. В первой строке файла должен быть указан профиль, на который рекомендуется перейти пользователям, а ниже, возможно - инструкция, как это сделать.
Пример:
default-linux/x86/2005.0 # emerge -n '>=sys-apps/portage-2.0.51' # rm -f /etc/make.profile # ln -s /usr/portage/profiles/default-linux/alpha/2005.0 /etc/make.profile
eapi
В первой строке этого файла указывается версия EAPI для всех файлов каталога. Справка по ebuild(5) предоставляет более развернутую информацию о EAPI и связанных с ним функциях.
make.defaults
Стандартные настройки профиля для Portage. Общий формат описан в руководстве по make.conf(5). Файл make.defaults для вашего профиля определяет несколько специфических переменных:
ARCH
Архитектура (x86/ppc/hppa и т.д.).
USERLAND = GNU
Поддержка BSD/cygwin и т.д.
ELIBC = glibc
Поддержка uClibc/BSD libc и т.д.
PROFILE_ONLY_VARIABLES = ARCH
Предотвращает изменение пользователем критических переменных в файлах make.conf или окружении.
PROFILE_ARCH
Позволяет различать классы машин с совпадающим значением ARCH. Так, для всех компьютеров Sparc справедливо ARCH=sparc, но данная переменная должна иметь значение 'sparc32' или 'sparc64'.
STAGE1_USE
Специальные USE-флаги, которые могут понадобиться при самогенерации stage2 из stage1.
packages
Перечь пакетов, входящих в состав сета system.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - на одной строке может быть только один атом зависимости - пакеты, которые должны быть добавлены в сет system, начинаются с символа * - атомы без символа * выводятся только если речь идет об устаревших, но по-прежнему используемых пакетах
Примечание: При использовании каскадных профилей вы можете при настройке удалять в дочерних профилях пакеты, добавленные родительским профилем - для этого атом необходимо указать с префиксом '-'.
Пример:
# Это комментарий! # загрузить версию glibc ниже 2.3 *<sys-libs/glibc-2.3 # загрузить любую версию bash *app-shells/bash # загрузить версию readline ниже 4.2 *<sys-libs/readline-4.2
packages.build
Список пакетов (по пакету на строку), которые составляют архив stage1. Его изменение имеет смысл только для разработчиков stage.
package.provided
Список пакетов (по пакету на строку), для которых portage предполагает, что они имеют источник данных. Имеет смысл при портировании на системы, отличные от Linux. В целом этот список заменяет emerge --inject.
Например, если вы работаете с собственной копией ядра 2.6, вы можете указать portage, что пакет 'sys-kernel/development-sources-2.6.7' уже обслуживается со стороны, так что он должен его игнорировать.
Portage не будет пытаться обновить пакет из данного списка, если только другой пакет явно не требует более новой его версии, чем указанная в списке. Зависимости, удовлетворяемые перечисленным в package.provided, могут вызвать удаление командой emerge --depclean установленных пакетов, удовлетворяющих соответствующие зависимости (подробнее см. в разделе ДЕЙСТВИЯ man-руководства emerge(1)).
В package.provided не должны помещаться виртуальные пакеты (virtual/*). В зависимости от типа такого пакета, вам может понадобиться добавить его в файл virtuals и/или добавить пакет, удовлетворяющий виртуальному, в package.provided.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - на одной строке может быть только один атом зависимости - операторы отношений не допускаются - должна быть указана версия
Пример:
# вы занимаетесь разработкой ядра sys-kernel/development-sources-2.6.7 # у вас установлена собственная копия QT x11-libs/qt-3.3.0 # у вас модульная среда X, а пакетам необходима монолитная x11-base/xorg-x11-6.8
package.use.force
Принудительное назначение USE-флагов для отдельных пакетов.
Примечание: При использовании каскадных профилей вы можете при настройке удалять в дочерних профилях USE-флаги, добавленные родительскими профилями - для этого флаг нужно указать с префиксом '-'.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - по одному атому зависимости на строку, USE-флаги разделяются пробелом
Пример:
# принудительно установить документацию для GTK 2.x =x11-libs/gtk+-2* doc # принудительно убрать поддержку mysql для QT x11-libs/qt -mysql
package.use.mask
Маскировка USE-флагов для отдельных пакетов.
Примечание: При использовании каскадных профилей вы можете при настройке удалять в дочерних профилях USE-флаги, добавленные родительскими профилями - для этого флаг нужно указать с префиксом '-'.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - по одному атому зависимости на строку, USE-флаги разделяются пробелом
Пример:
# замаскировать документацию для GTK 2.x =x11-libs/gtk+-2* doc # размаскировать поддержку mysql для QT x11-libs/qt -mysql
parent
Содержит путь доступа к родительскому профилю. Путь может быть как абсолютным, так и относительным. К местонахождению профиля путь будет относительным. Как правило, данный файл содержит указание на родительский каталог, '..'. Используется только в каскадных профилях.
profile.bashrc
При необходимости этот файл можно использовать для настройки особого окружения для ебилдов, отличного от стандартного для root. Синтаксис файла такой же, как для любого другого сценария bash.
use.force
В определенных обстоятельствах некоторые USE-флаги нет смысла отключать. Здесь перечисляются принудительно выставляемые флаги.
Примечание: При использовании каскадных профилей вы можете при настройке удалять в дочерних профилях USE-флаги, добавленные родительскими профилями - для этого флаг нужно указать с префиксом '-'.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - по одному USE-флагу на строку
use.mask
Некоторые USE-флаги на отдельных архитектурах не имеют смысла (например, altivec на архитектуре, отличной от ppc, или mmx на архитектуре, отличной от x86) или не тестировались. Здесь перечисляются замаскированные флаги.
Примечание: При использовании каскадных профилей вы можете при настройке удалять в дочерних профилях USE-флаги, добавленные родительскими профилями - для этого флаг нужно указать с префиксом '-'.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - по одному USE-флагу на строку
Пример:
# замаскировать doc doc # размаскировать mysql -mysql
virtuals
Определяет, какие пакеты являются источником виртуальных по умолчанию. Например, если пакет должен отправлять почту, ему понадобится virtual/mta. Если нет пакета, предоставляющего virtual/mta (например, qmail, sendmail, postfix и т.д.), portage обращается к значению virtuals. В данном случае Gentoo стандартно использует net-mail/ssmtp (как определено в файле virtuals) - это пакет, который минимально необходим для отсылки электронных писем.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - по одному виртуальному пакету и атому зависимости на строку
Пример:
# использовать net-mail/ssmtp как почтовый агент по умолчанию virtual/mta net-mail/ssmtp # использовать app-dicts/aspell-en как словарь по умолчанию virtual/aspell-dict app-dicts/aspell-en
/etc/portage/
Любой элемент в этом каталоге, имя которого начинается с "package.", может быть не только файлом, но и каталогом. Если это каталог, все файлы, хранящиеся в нем, отсортированы по имени в прямом алфавитном порядке и сведены вместе, как если бы это был один файл.
Пример:
/etc/portage/package.accept_keywords/common /etc/portage/package.accept_keywords/e17 /etc/portage/package.accept_keywords/kde
bashrc
При необходимости этот файл может быть использован для настройки особого окружения ебилдов, отличного от стандартного окружения root. По синтаксису файл представляет собой обычный сценарий bash.
В каталоге /etc/portage/env можно создавать дополнительные файлы настроек интерпретатора bashrc для отдельных пакетов.
categories
Простой список существующих категорий, которые могут быть использованы в /usr/portage, PORTDIR_OVERLAY и PKGDIR (см. make.conf(5)). Это позволяет создавать пользовательские категории.
Формат:
- по одной категории на строку
Пример:
app-hackers media-other
color.map
Содержит переменные для пользовательской настройки цветного вывода. См. color.map(5).
make.conf
Глобальные пользовательские настройки Portage. См. make.conf(5). Если этот файл существует, он имеет приоритет перед /etc/make.conf.
mirrors
Всякий раз, сталкиваясь с URI-ссылкой вида mirror://, portage обращается в поиске серверов сюда. Если mirrors не содержит перечня зеркал, portage обратится к глобальному файлу зеркал по адресу /usr/portage/profiles/thirdpartymirrors. Вы можете также указать особый тип зеркал, "local". Обращение к таким зеркалам происходит до считывания значения переменной GENTOO_MIRRORS; они используеются даже в том случае, если для пакета установлены параметры RESTRICT="mirror" или RESTRICT="fetch".
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - сначала тип зеркала, затем список серверов
Пример:
# локальные частные зеркала моей компании local ftp://192.168.0.3/mirrors/gentoo http://192.168.0.4/distfiles # если вы находитесь в Японии, предпочтительным для вас, скорее всего, будет японский сервер sourceforge sourceforge http://keihanna.dl.sourceforge.net/sourceforge # если вы находитесь в Тайване, предпочтительным для вас, скорее всего, будет местный сервер gnu gnu ftp://ftp.nctu.edu.tw/UNIX/gnu/
modules
Этот файл позволяет переопределять кэш метаданных. На практике единственной используемой здесь переменной, которую имеет смысл менять пользователю, является portdbapi.auxdbmodule.
Пример:
portdbapi.auxdbmodule = portage.cache.sqlite.database
После переопределения значения portdbapi.auxdbmodule может быть необходимо перенести или регенерировать кэш метаданных. Если вы используете дерево rsync и в make.conf(5) включено FEATURES="metadata-transfer", выполните `emerge --metadata`. Чтобы регенерировать метаданные для репозиториев из переменной PORTDIR_OVERLAY или дерева cvs, выполните `emerge --regen` (см. emerge(1)). Если вы используете, например, модуль sqlite и хотите, чтобы все метаданные сохранялись только в этом формате (удобно для запросов), включите FEATURES="metadata-transfer" в вашем make.conf(5).
package.accept_keywords и package.keywords
Позволяют назначать ACCEPT_KEYWORDS для отдельных пакетов. Это имеет смысл, если вам необходимо несколько нестабильных пакетов на стабильной системе или наоборот. ACCEPT_KEYWORDS получает здесь аргументом один определенный пакет. Если в системе присутствуют и package.accept_keywords, и package.keywords, будут использованы оба, причем значения из package.accept_keywords будут иметь приоритет перед package.keywords. Файл package.accept_keywords призван заменить package.keywords, поскольку профили поддерживают другой формат package.keywords, который изменяет действующие значения KEYWORDS (а не ACCEPT_KEYWORDS).
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в каждой строке - один атом зависимости и дополнительное ключевое слово - если в строке не указано ключевых слов, подразумевается, что используется нестабильная ветка Пример: # всегда использовать нестабильные версии libgd media-libs/libgd ~x86 # использовать только стабильные версии mplayer media-video/mplayer -~x86 # всегда использовать нестабильные версии netcat net-analyzer/netcat
Примечание: В дополнение к стандартным значениям переменной ACCEPT_KEYWORDS package.keywords поддерживает три особых маркера:
* пакет отображается только в том случае, если он стабилен на любой архитектуре ~* пакет отображается только в том случае, если он тестируется на всех архитектурах ** пакет отображается во всех случаях (ключевые слова игнорируются)
Дополнительное примечание: Если вы видите значение -* KEYWORD, это означает, что пакет не работает ни на одной системе, кроме перечисленных в KEYWORDS. Например, для пакета, существующего лишь как бинарный и собранного под архитектуру x86, имеем следующую запись:
games-fps/quake3-demo-1.11.ebuild:KEYWORDS="-* x86"
Если вы всё же хотите, чтобы этот пакет был доступен, используете другое ключевое слово в package.accept_keywords, например:
games-fps/quake3-demo x86
package.env
Переменные окружения для отдельных пакетов. Каждая запись соответствует файлу окружения; все эти файлы хранятся в каталоге /etc/portage/env/ и имеют тот же формат, что и make.conf(5).
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в одной строке - один атом зависимости и соответствующий/-е ему файл(ы) окружения
Пример:
# использовать для пакета glibc переменные окружения из файла /etc/portage/env/glibc.conf sys-libs/glibc glibc.conf
package.license
Позволяет добавлять значения ACCEPT_LICENSE для отдельных пакетов.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в одной строке - один атом зависимости с дополнительными лицензиями или группами лицензий для него
package.mask
Список маскируемых атомов пакетов. Полезно в том случае, если не все версии требуемого пакета работают в вашей системе. Например, вам необходимы драйверы Nvidia drivers, но только версии до 1.0.4496. Нет ничего проще!
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - по одному атому зависимости на строку
Пример:
# замаскировать драйверы nvidia # версии 1.0.4496 и выше >=media-video/nvidia-kernel-1.0.4496 >=media-video/nvidia-glx-1.0.4496
package.properties
Позволяет добавлять значения ACCEPT_PROPERTIES для отдельных пакетов.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в одной строке - один атом зависимости и дополнительные свойства для него
package.unmask
Аналогично описанному выше package.mask, но здесь, наоборот, перечисляются те пакеты, которые вы хотите размаскировать. Позволяет переопределить значения глобального файла package.mask (см. выше). Обратите внимание, что это не влияет на пакеты, которые были замаскированы посредством переменной KEYWORDS.
package.use
USE-флаги для отдельных пакетов. Удобно для отслеживания локальных USE-флагов, а также в случаях, когда флаги необходимо включать выборочно. Например, вы - разработчик GTK, поэтому вам необходима полная документация по данному проекту, а документация по QT не нужна. Элементарно, Ватсон.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в одной строке - один атом зависимости и его USE-флаги, через пробел
Пример:
# подключить документацию для GTK 2.x =x11-libs/gtk+-2* doc # отключить поддержку mysql для QT x11-libs/qt -mysql
repos.conf
Содержит информацию о конфигурации отдельных репозиториев. Обратите внимание, что указанные здесь настройки конфигурации не относятся к таким утилитам как repoman(1) и egencache(1), поскольку выполняемые ими операции по определению не зависят от репозитория. ВНИМАНИЕ: в общем случае не рекомендуется использовать repos.conf, поскольку это повлечет за собой изменения в наследовании еклассов (прежде всего переопределение еклассов), которые, в свою очередь, в ряде случаев могут вызвать снижение производительности (см. ошибку #124041). При переопределении еклассов, дабы обойти ошибку #276264, вы должны убедиться, что ваше дерево портежей не содержит каталога metadata/cache/. Если же этот каталог существует, вам следует полностью его удалить и прописать значение переменной PORTAGE_RSYNC_EXTRA_OPTS="--exclude=/metadata/cache" в файле make.conf, чтобы исключить metadata/cache/ из операций *emerge --sync.
Пример:
[DEFAULT] # все репозитории будут наследовать еклассы из java-overlay и репозиториев # java-experimental, причем еклассы из java-experimental # будут иметь приоритет перед еклассами из java-overlay eclass-overrides = java-overlay java-experimental [gentoo] # отключить переопределение еклассов для ебилдов из репозитория gentoo eclass-overrides = # при обработке данных metadata/layout.conf из других репозиториев, вставлять # 'gentoo' вместо алиасов-ссылок на репозитории 'foo' и 'bar', # а алиас 'baz', содержащийся в файле layout.conf для gentoo, игнорировать aliases = foo bar -baz [kde-testing] # переопределять настройки metadata/layout.conf основной ветки репозитория kde-testing masters = gentoo kde [python] # переопределять настройки metadata/layout.conf основной ветки репозитория python, # чтобы эти настройки не наследовались из ветки и чтобы # репозиторий не тянул оттуда зависимости (пользователю необходимо # убедиться, что все необходимые зависимости, такие как еклассы, удовлетворены) masters =
/etc/portage/env/
В этом каталоге могут располагаться дополнительные файлы настройки интерпретатора, bashrc, для отдельных пакетов. Имейте в виду, что, если необходимы лишь настройки переменных окружения для этих пакетов, следует использовать не bashrc, а /etc/portage/package.env.
Функции set_unless_changed и unset_unless_changed functions можно использовать для изменения значений данных переменных, но только в том случае, если их значения не противоречат значениям, выставленным в файле make.conf. Это удобно, когда требуется временно переопределить переменные окружения при вызове emerge. Значения переменных, которых было назначены без использования функции set_unless_changed, всегда переопределяют значения, установленные при вызове emerge.
Синтаксис:
set_unless_changed ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ unset_unless_changed ЗНАЧЕНИЕ
Portage обрабатывает все файлы bashrc после /etc/portage/bashrc, в следующем порядке:
- /etc/portage/env/${CATEGORY}/${PN}
- /etc/portage/env/${CATEGORY}/${PN}:${SLOT}
- /etc/portage/env/${CATEGORY}/${P}
- /etc/portage/env/${CATEGORY}/${PF}
/usr/portage/metadata/
layout.conf
Содержит схему репозиториев. Поддерживается атрибут masters, используемый для указания репозиториев, которые удовлетворяют зависимости еклассов и/или ебилдов. Каждому репозиторию должно соответствовать значение записи repo_name одного из репозиториев, определенного переменными PORTDIR и PORTDIR_OVERLAY (см. make.conf(5)). Репозитории справа от masters имеют большие приоритет, чем указанные слева. Поддерживается также атрибут aliases, поведение которого аналогично этому же атрибуту из файла repos.conf. Значения layout.conf можно переопределять для отдельных репозиториев в файле /etc/portage/repos.conf. Настройки, содержащиеся в repos.conf, имеют приоритет перед значениями layout.conf, однако такие утилиты как repoman(1) и egencache(1) полностью игнорируют repos.conf, поскольку выполняемые ими операции по определению не зависят от репозитория.
Пример:
# еклассы, предоставляемые java-overlay, имеют приоритет перед одноименными # еклассами, предоставляемыми gentoo masters = gentoo java-overlay # указать, что данный репозиторий может заменять foo-overlay aliases = foo-overlay # не подписывать manifest-файлы в данном репозитории sign-manifests = false # использовать "легкие" manifest-файлы, содержащие только записи DIST thin-manifests = true # указать, что в данном репозитории каждому пакету должен соответствовать manifest-файл, а если # его нет или он некорректен, это будет рассматриваться как ошибка use-manifests = strict # указать, что для данного репозитория по умолчанию включена опция repoman --echangelog=y update-changelog = true # указать, что данный репозиторий содержит файлы формата как md5-dict, так и pms - # их может генерировать egencache(1) cache-formats = md5-dict pms # указать, что данный репозиторий содержит профили, которые могут использовать # package.mask, package.provided, package.use, package.use.mask, # package.use.force, use.mask и use.force как каталоги. profile-formats = portage-1
/usr/portage/profiles/
Глобальные настройки Gentoo, контролируемые разработчиками. Переопределить их можно, используя файлы в каталоге /etc/portage/.
arch.list
Список всех доступных ключевых слов KEYWORDS. Модификаторы не учитываются.
Формат:
- по одному ключевому слову на строку
Пример:
x86 ppc sparc
categories
Простой список доступных категорий, которые могут быть использованы в /usr/portage, PORTDIR_OVERLAY и PKGDIR (см. make.conf(5)).
Формат:
- по одной категории на строку
Пример:
app-admin dev-lang games-strategy sys-kernel
info_pkgs
Список всех пакетов, которые будут выведены по команде `emerge --info`.
info_vars
Список всех переменных, которые будут выведены по команде `emerge --info`.
license_groups
Содержит группы лицензий, которые могут быть определены переменной ACCEPT_LICENSE (см. make.conf(5)). Подробнее об этом см. в GLEP 23:
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в одной строке - одна группа с перечнем лицензий и вложенных групп - вложенные группы должны иметь префикс @
Пример:
# Группа лицензий FSF-APPROVED полностью включает в себя группу GPL-COMPATIBLE и не только. FSF-APPROVED @GPL-COMPATIBLE Apache-1.1 BSD-4 MPL-1.0 MPL-1.1 # Группа лицензий GPL-COMPATIBLE включает все лицензии, совместимые с GNU GPL. GPL-COMPATIBLE Apache-2.0 BSD BSD-2 GPL-2 GPL-3 LGPL-2.1 LGPL-3 X11 ZLIB
package.accept_keywords
Значения ACCEPT_KEYWORDS, используемые профилями, для отдельных пакетов. Формат и повдение этого файла аналогичны /etc/portage/package.accept_keywords, включая возможность включения в список атомов без ключевых слов, тем самым разрешая использовать нестабильные соответствия все стабильных веток, перечисленных в ACCEPT_KEYWORDS.
package.keywords
Значения KEYWORDS для отдельных профилей. Полезно в случаях, когда ключевое слово для того или иного пакета должно меняться в зависимости от выбранного профиля.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в одной строке - один атом с зависимости с дополнительными ключевыми словами для него
Пример:
# добавить для libgd стабильную ветку media-libs/libgd x86 # заменить для mplayer стабильную ветку нестабильной media-video/mplayer -x86 ~x86 # удалить для netcat все ключевые слова net-analyzer/netcat -*
package.mask
Содержит перечень атомов зависимости для пакетов, которые не должны устанавливаться ни в одном профиле. Имеет смысл, например, если вам необходимо добавить последние бета-версии KDE, но не допустить, чтобы кто-либо из пользователей мог до них обновиться. Удобно и для быстрой маскировки отдельных версий, если были обнаружены проблемы с безопасностью. ВСЕГДА сопровождайте записи комментарием, в котором указывались бы ПРИЧИНА, по которой пакет замаскирован, и тот, КТО его замаскировал.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - по одному атому зависимости на строку
Пример:
# замаскировать по соображениям безопасности <sys-libs/zlib-1.1.4 # <caleb@gentoo.org> (10 Sep 2003) # новые бета-версии kde =kde-base/kde-3.2.0_beta1 =kde-base/kdeaccessibility-3.2.0_beta1
profiles.desc
Список всех текущих профилей, предназначенных для пользователей и разработчиков. Каждый указанный здесь профиль обрабатывается утилитой repoman.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в одной строке - один профиль, описанный в формате: _архитектура каталог состояние_, где: - архитектура должна фигурировать в arch.list - каталог должен фигурировать в profiles.desc - поддерживаются три состояния профиля: 'stable', 'dev' и 'exp'
Пример:
alpha default/linux/alpha/10.0 stable m68k default/linux/m68k/10.0 dev x86 default/linux/x86/10.0 stable x86-linux prefix/linux/x86 exp
repo_name
Первая строка файла должна определять уникальное имя репозитория. Это имя может содержать любые символы из набора [A-Za-z0-9_-], причем дефис не может стоять в начале имени.
thirdpartymirrors
Управляет обработкой URI вида mirror://, представляющих собой доступные для загрузки зеркала. Предотвращает перегрузку какого-либо одного сервера.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - в строке - тип сервера и перечень хостов
Пример:
sourceforge http://aleron.dl.sourceforge.net/sourceforge http://unc.dl.sourceforge.net/sourceforge gentoo http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/distfiles kernel http://www.kernel.org/pub http://www.us.kernel.org/pub
use.desc
Здесь должны быть перечислены все глобальные USE-флаги с их описанием.
Формат:
- комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - синтаксис строки: USE-флаг - описание
Пример:
3dfx - Adds support for 3dfx video cards acl - Adds support for Access Control Lists doc - Adds extra documentation
use.local.desc
Здесь перечисляются все локальные USE-флаги с описанием и указанием пакетов, для которых они установлены. Этот файл генерируется автоматически на основе файлов метаданных metadata.xml, включаемых во все пакеты. Подробнее см. в GLEP 56:
Формат: - комментарии начинаются с символа # (внутритекстовые комментарии не допускаются) - синтаксис строки: пакет:USE-флаг - описание Пример: app-editors/nano:justify - Toggles the justify option dev-libs/DirectFB:fusion - Adds Multi Application support games-emulation/xmess:net - Adds network support
/usr/share/portage/config/
make.globals
Глобальные настройки по умолчанию для Portage. Они беруется непосредственно из пакета portage. Настройки, выставленные пользователем в make.conf или package.env, переопределяют их. Формат подробно описан в make.conf(5).
/var/cache/edb/
Этот каталог используется для хранения файлов внутреннего кэша portage. Имена и назначение этих файлов специально не документируются, дабы сэкономить ресурсы. Если вы не ведете разработку portage, вас, скорее всего, не касается описанное ниже.
Содержимое данного каталога может быть полностью удалено без какого-либо ущерба безопасности. Тем не менее убедительно рекомендуем не делать этого, поскольку повторное его генерирование может занять много времени.
/var/db/pkg/
Информация обо всех установленных пакетах хранится здесь. Portage определяет, установлен ли тот или иной пакет, путем обращения к этому каталогу.
Его структура в целом дублирует структуру дерева портежей: для каждой категории установленных пакетов предусмотрен подкаталог, а для каждой установленной версии пакета - вложенный в него каталог.
Каждый каталог пакета содержит различные файлы, описывающие установленные элементы пакета; здесь же хранится информация времени сборки (чтобы пакет можено было удалить, не обращаясь к дереву портежей).
Мы не описываем здесь точное содержимое и формат файлов, поскольку они могут в любой момент изменены. Впрочем, как правило, обычно каждой значимой переменной окружения (например, CFLAGS) соответствует один файл в данном каталоге. Обычно присутствует файл CONTENTS, содержащий адреса и хэши всех объектов, установленных пакетом в вашу систему.
/var/lib/portage/
config
Содержит хэши, позволяющие определить, изменялись ли после установки файлы в каталогах, для которых используется система защиты конфигурационных файлов. Файлы, которые не были изменены, будут автоматически удалены из дерева.
world
Всякий раз, когда вы устанавливаете какой-либо пакет, его имя вносится в этот файл. При вызове `emerge world -up` из world-файла считывается список пакетов. Обратите внимание, что пакеты, установленные как зависимости, не вносятся в world. Например, если вы введете в терминале `emerge mod_wsgi`, а apache у вас еще не установлен, в world-файл будет внесен пакет "www-apache/mod_wsgi", но не "www-servers/apache". Подробнее см. emerge(1).
Формат:
- по одному атому зависимости на строку
Пример:
games-misc/fortune-mod-gentoo-dev dev-libs/uclibc app-cdr/cdemu
world_sets
Аналогичен world-файлу, но вместо атомов пакетов содержит сеты пакетов (всегда начинаются с символа @).
Пример:
@kde
БАГТРЕКЕР¶
Об обнаруженных ошибках сообщайте на
АВТОРЫ¶
- Marius Mauch <genone@gentoo.org>
- Mike Frysinger <vapier@gentoo.org>
- Drake Wyrm <wyrm@haell.com>
- Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
СМ. ТАКЖЕ¶
emerge(1), ebuild(1), ebuild(5), make.conf(5), color.map(5)
ПЕРЕВОД¶
- Елена Гаврилова <e.vl.gavrilova@yandex.ru>
Октябрь 2011