Files and directories

Updated 4 July 2019

Portage files

Configuration directives

By default, Portage settings are stored in /etc/portage/make.conf/custom. If you open this file, you will see that all of them are variables. Each variable will be explained later.

As many directives are architecture-specific, Portage comes with default settings included in your profile. The /etc/portage/make.profile symlink points to your profile. Portage can be configured via the make.defaults files of your profile and those of all parent profiles. We will talk more about profiles and /etc/portage/make.profile later on.

Вы также обнаружите файл /etc/portage/make.conf/binhost, в который утилита обновления cl-update вписывает настройки репозхитория бинарных пакетов, а так же файл /etc/portage/make.conf/0-base в который импортируется описания подключенных оверлеев утилиты layman.

Portage variables can also be used as environment variables, but we do not recommend it.

Profile-specific configuration

Do you remember the /etc/portage/make.profile directory? На самом деле это не каталог, а символическая ссылка на профиль, по умолчанию на тот, что содержится в /var/lib/layman/calculate/profiles, однако вы можете создавать свои собственные профили где угодно и ссылаться на них. The profile the link points to is your system's profile.

В профиле содержатся сведения для Portage, специфичные для архитектуры, такие как список пакетов, принадлежащих соответствующей системе, список неработоспособных (или замаскированных) пакетов, и т.д.

User-specific configuration

Если вам необходимо изменить поведение Portage относительно установки программного обеспечения, вам потребуется отредактировать файлы, находящиеся в /etc/portage. We strongly recommend editing files from /etc/portage to reconfigure Portage. Please do not attempt doing it using environment variables.

The subdirectories available in /etc/portage are:

  • директория package.mask, в которой можно создать файлы с перечислением пакетов, которые Portage никогда не следует устанавливать;
  • директория package.unmask, в которой можно создать файлы со списком пакетов, для которых вы хотите иметь возможность установки, даже если разработчики Gentoo отговаривают вас от этого;
  • директория package.keywords, в которой можно создать файлы с перечислением пакетов, которые должны быть доступны для установки, несмотря на то, что они не подходят для вашей системы или архитектуры (пока);
  • директория package.use, в которой можно создать файлы, где перечислены значения USE-флагов, которые необходимо указывать для конкретных пакетов, а не для всей системы.

Дополнительные сведения о каталоге /etc/portage, а также список всех файлов, которые там можно создавать, находятся на справочной странице Portage, см. man portage.

Editing Portage files and modifying locations

Ранее упомянутые конфигурационные файлы нельзя хранить где угодно - Portage всегда ищет свои настроечные файлы в строго определенных местах. Однако Portage также использует множество каталогов для других целей: каталог для сборки, место для хранения исходных кодов, место для дерева Portage, и т.д.

Для этих целей существуют хорошо известные каталоги по умолчанию, положение которых можно изменить на свой вкус, внеся изменения в /etc/make.conf. Оставшаяся часть этой главы посвящена описанию того, какие специальные места Portage использует для своих целей, и как изменить их расположение в файловой системе.

Note that this manual does not reproduce the official documentation. If you need full info, please refer to Portage and make.conf man pages (man portage and man make.conf respectively).

File storage

Portage tree

By default, the Portage tree is stored in /usr/portage. This is defined by the PORTDIR value. Когда вы храните дерево Portage где-либо в другом месте (изменив эту переменную), не забывайте соответственно изменить символическую ссылку /etc/portage/make.profile.

Если вы измените переменную PORTDIR, вам может потребоваться изменить и следующие переменные: PKGDIR, DISTDIR, RPMDIR, так как они не замечают изменений PORTDIR. It has to do with how Portage handles them.

Binary packages

Несмотря на то, что Portage по умолчанию не использует прекомпилированное программное обеспечение, для него предусмотрена очень мощная поддержка. Если вы укажете Portage работать с прекомпилированными пакетами, они будут разыскиваться в /var/calculate/remote/packages. This location is defined by the PKGDIR variable.

Source code

By default, all source code is saved in /var/calculate/remote/distfiles. This location is defined by the DISTDIR variable.

RPM files

Несмотря на то, что Portage не может использовать RPM-файлы, есть возможность их создания командой ebuild (см. Working with ebuild). По умолчанию Portage хранит RPM файлы в каталоге /usr/portage/rpm, как определяется переменной RPMDIR.

Portage database

Portage хранит состояние вашей системы (какие пакеты установлены, какие файлы относятся к определенным пакетам и т. п.) в /var/db/pkg. Do not edit those files manually! It could disorient Portage completely.

Portage cache

Кэш Portage (включая сведения о времени изменения, виртуальные пакеты, информацию дерева зависимостей и т. д.) хранится в /var/cache/edb. Это место действительно является кэшем: вы можете его очистить в любой момент, когда не запущены приложения, связанные с Portage.

Software compilation

Portage temporary files

По умолчанию Portage хранит временные файлы в /var/tmp. За это отвечает переменная PORTAGE_TMPDIR.

Если вы измените переменную PORTAGE_TMPDIR, вам может потребоваться изменить и переменную BUILD_PREFIX, так как она не замечает изменений PORTAGE_TMPDIR. Это связано с особенностями ее обработки Portage.

Compilation directory

Portage создает специфичные каталоги сборки для каждого пакета внутри /var/tmp/portage. It is defined by the BUILD_PREFIX value.

Locating the live filesystem

По умолчанию Portage устанавливает все файлы в текущую файловую систему (/), но это можно изменить, установив переменную окружения ROOT. It can be useful when creating a customized ISO.

Logging

Ebuild log

Portage может создавать отдельные файлы журнала для каждого файла ebuild, но только тогда, когда переменная PORT_LOGDIR указывает на место, доступное для записи для Portage (пользователя portage). This variable is not set by default.