Файлы и каталоги
Обновлено 7 ноября 2026
Страница актуальна для Portage 3.0.82 и Calculate Utilities 3.8.
Файлы Portage
Директивы настройки
Portage поставляется с настройками по умолчанию, которые хранятся в файле /usr/share/portage/config/make.globals. Вся настройка Portage выполняется с помощью переменных; назначение каждой переменной описано на странице Настройка с помощью переменных.
Так как многие директивы различаются в зависимости от архитектуры, часть настроек по умолчанию входит в профиль системы. На профиль указывает символическая ссылка /etc/portage/make.profile, а сами значения задаются в файлах make.defaults профиля и всех его родительских профилей.
При изменении конфигурационных переменных не правьте make.globals и make.defaults — для этого служит /etc/portage/make.conf, который имеет приоритет над ними. В Calculate Linux это не файл, а каталог: файл binhost в нём создаёт шаблон дистрибутива (вручную его не редактируют — для своего значения нужен .clt-шаблон, см. Шаблоны), а пользовательские настройки пишут в файл custom с закомментированными «ручками» для сборки и компилятора. Подробно каталог make.conf разобран на странице Настройка с помощью переменных.
Ориентироваться в назначении переменных поможет файл-пример /usr/share/portage/config/make.conf.example: Portage его не читает, это только образец.
Переменные Portage можно задавать и через переменные среды, но так делать не следует.
Конфигурация, определяемая профилем
Ссылка /etc/portage/make.profile указывает на профиль, которому следует система: Portage находит профиль именно по этой ссылке, а свои профили можно располагать где угодно. В Calculate Linux такая ссылка принадлежит дистрибутиву и ведёт в репозиторий distros — на профиль /var/db/repos/distros/profiles/CLD/amd64/20, стоящий над профилем Gentoo: в его родителях — профиль Calculate и базовый профиль Gentoo для amd64. Менять эту ссылку не следует (в том числе средствами eselect): на профиле дистрибутива держатся бинарные пакеты зеркала и шаблоны world; подробности — на странице Смешение ветвей программного обеспечения.
Профиль содержит сведения, специфичные для архитектуры: список пакетов, принадлежащих системе этого профиля, перечень пакетов, которые для профиля не работают или замаскированы, и тому подобные данные.
Конфигурация, задаваемая пользователем
Когда нужно изменить поведение Portage, правят файлы внутри /etc/portage. Пользоваться именно файлами из /etc/portage настоятельно рекомендуется; переопределять поведение Portage переменными среды не рекомендуется.
Внутри /etc/portage можно создавать:
- package.mask — перечень пакетов, которые Portage не должен устанавливать никогда;
- package.unmask — пакеты, которые разрешено устанавливать, даже если пакет помечен как нестабильный;
- package.accept_keywords — пакеты, которые разрешено устанавливать, хотя они пока не признаны подходящими для вашей системы или архитектуры;
- package.use — значения USE-флагов для отдельных пакетов, а не для всей системы.
Это не обязательно должны быть файлы — каждый путь может быть каталогом, и тогда Portage объединяет настройки из всех его файлов. В Calculate Linux все четыре позиции уже созданы как каталоги; например, в /etc/portage/package.use/custom лежит файл-заготовка, переносимый при установке системы.
Кроме того, в составе дистрибутива в /etc/portage есть каталоги savedconfig/, sets/ и profile/ (с заготовкой package.provided от дистрибутива), а также каталог postsync.d/ с хуком 50-eix-postsync, который обновляет базу eix после синхронизации.
Файл (или каталог) package.env дистрибутив не создаёт — его заводите вы сами, если понадобится задавать переменные среды для отдельных пакетов; об этом страница Переменные среды.
Полный список файлов и каталогов, которые понимает Portage, приведён на его справочной странице:
man portage
Изменение расположения файлов и каталогов
Перечисленные выше конфигурационные файлы нельзя хранить в другом месте: Portage всегда ищет их по строго определённым путям. Однако для остальных задач — сборки пакетов, хранения исходников, репозиториев — у Portage есть свои каталоги по умолчанию, и их положение можно изменить, задав соответствующие переменные в /etc/portage/make.conf.
Страница не заменяет справочник: полные сведения о переменных и путях содержатся на справочных страницах portage и make.conf.
man make.conf
Карта путей в Calculate Linux
Основные каталоги Portage в установленной Calculate Linux:
| Путь | Назначение |
|---|---|
| /etc/portage/make.conf | каталог пользовательских переменных настройки (не файл) |
| /etc/portage/make.profile | символическая ссылка на действующий профиль |
| /usr/share/portage/config/ | встроенные настройки по умолчанию: make.globals, make.conf.example, binrepos.conf |
| /var/db/repos/gentoo | зеркало дерева ebuild-файлов Gentoo |
| /var/db/repos/calculate | пакеты, эклассы и шаблоны Calculate |
| /var/db/repos/distros | профили дистрибутивов (CLD, CLDX, CDS и т.д.) |
| /var/calculate/repos/container | репозиторий контейнерных сборок |
| /var/calculate/repos/custom | пользовательский репозиторий |
| /var/calculate/distfiles | загруженные исходники (переменная DISTDIR) |
| /var/calculate/packages/x86_64 | бинарные пакеты (переменная PKGDIR) |
| /var/calculate/tmp | каталог сборки (переменная PORTAGE_TMPDIR) |
| /var/db/pkg | база данных установленных пакетов |
| /var/cache/edb | кэш метаданных Portage |
| /var/lib/portage/world | список явно установленных пакетов |
Хранение файлов
Репозитории ebuild-файлов
Расположение главного репозитория gentoo по умолчанию — /var/db/repos/gentoo (в выводе emerge --info он помечен как main-repo). Расположение каждого репозитория задаёт параметр location в файлах каталога /etc/portage/repos.conf.
В Calculate Linux репозиториев пять; их расположение видно в блоке Repositories вывода emerge --info:
Repositories:
custom
location: /var/calculate/repos/custom
masters: calculate gentoo
volatile: True
calculate
location: /var/db/repos/calculate
sync-type: calculate
sync-uri: https://github.com/calculatelinux/calculate
masters: gentoo
priority: 50
volatile: False
container
location: /var/calculate/repos/container
sync-type: git
sync-uri: https://github.com/calculatelinux/container
masters: calculate gentoo
priority: 50
volatile: True
distros
location: /var/db/repos/distros
sync-type: calculate
sync-uri: https://github.com/calculatelinux/distros
masters: calculate gentoo
priority: 50
volatile: False
gentoo
location: /var/db/repos/gentoo
sync-type: calculate
sync-uri: https://github.com/calculatelinux/gentoo
priority: 50
volatile: FalseНазначение репозиториев: gentoo — зеркало дерева Gentoo (синхронизируется с репозитория проекта Calculate), calculate — пакеты, эклассы и шаблоны Calculate, distros — профили дистрибутивов, container — репозиторий для контейнерных сборок, custom — пользовательский репозиторий с мастерами calculate и gentoo.
Не правьте файлы репозиториев дистрибутива
Конфигурацию репозиториев дистрибутива несут файлы /etc/portage/repos.conf/zz-calculate.conf (репозитории distros, calculate, gentoo, custom) и /etc/portage/repos.conf/custom.conf (репозиторий container). Их создаёт дистрибутив, они не принадлежат ни одному пакету, и править их руками не следует. Свой репозиторий добавляют новым файлом в /etc/portage/repos.conf — подробнее на странице Отступление от официального дерева.
Утилита layman в системе отсутствует: вместо её установки в Calculate уже настроен готовый пользовательский репозиторий custom.
При переносе репозитория в другое место дополнительно задайте в /etc/portage/make.conf переменные PKGDIR и DISTDIR: из-за особенностей обработки переменных они не заметят переноса сами.
Бинарные пакеты
Portage умеет работать с готовыми бинарными пакетами. В vanilla-Portage по умолчанию они не используются и искаться должны в /var/cache/binpkgs; в Calculate Linux по умолчанию выполняется установка из бинарных пакетов, а локальные и загруженные сборки хранятся в /var/calculate/packages/x86_64 (переменная PKGDIR). Адрес сервера бинарных пакетов задаёт дистрибутив; механизм описан на странице Возможности Portage.
Исходные коды
Загруженные архивы с исходниками Portage хранит в каталоге, который задаёт переменная DISTDIR; в Calculate Linux это /var/calculate/distfiles. Скачивание идёт с зеркал, перечисленных в переменной GENTOO_MIRRORS.
База данных Portage
Состояние системы — какие пакеты установлены и какие файлы к ним относятся — Portage хранит в /var/db/pkg.
Не изменяйте файлы состояния вручную
Ручная правка записей базы может разрушить представление Portage о системе.
Кэш Portage
Кэш (данные о времени изменения, виртуальные пакеты, сведения о дереве зависимостей) лежит в /var/cache/edb. Это именно кэш: его можно очистить, если в этот момент не запущено ни одно связанное с Portage приложение.
Файл world
Список явно установленных пакетов Portage хранит в файле /var/lib/portage/world. В Calculate его содержимое формируют не только пользовательские установки: список собирают дистрибутивные шаблоны 6_ac_update_sync/world/create/*, поэтому в начале файла стоит служебная шапка с перечнем обработанных шаблонов. Выглядит такой create-шаблон так:
Create-шаблон world
# Calculate name=world format=world #?in(os_linux_pkglist, calculate)!=# media-fonts/terminus-font sys-apps/busybox sys-apps/calculate-toolkit #sys-apps/ifplugd sys-apps/less
Как шаблоны собирают файлы системы — на странице Шаблоны.
Сборка программного обеспечения
Для каждого устанавливаемого пакета Portage создаёт отдельный каталог сборки внутри временного каталога, который задаёт переменная PORTAGE_TMPDIR; в Calculate Linux это /var/calculate/tmp. Фактические значения временных путей на вашей системе покажет вывод команды:
emerge --info
По умолчанию Portage устанавливает все файлы в текущую файловую систему, но корень установки можно изменить переменной ROOT — это полезно при построении новых образов системы.
Ведение журналов
Portage пишет журналы работы в каталог /var/log/portage: в нём расположены файл summary.log и подкаталог elog/; переменная PORT_LOGDIR по умолчанию не установлена.
Ведение журналов настраивают переменные, описание которых приведено в справочной странице make.conf:
- PORTAGE_ELOG_CLASSES
- PORTAGE_ELOG_COMMAND
- PORTAGE_ELOG_MAILFROM
- PORTAGE_ELOG_MAILSUBJECT
- PORTAGE_ELOG_MAILURI