5. Файлы и каталоги

Файлы Portage

Директивы настройки

Настройки Portage по умолчанию хранятся в /etc/make.globals. Когда вы откроете этот файл, вы увидите, что все настройки представляют собой переменные. Что означает каждая из переменных, описано ниже.

Так как многие директивы отличаются в зависимости от используемой архитектуры, к Portage прилагаются настройки по умолчанию, которые входят в ваш профиль. На ваш профиль указывает символическая ссылка /etc/make.profile. Настройка Portage выполняется c помощью файлов make.defaults вашего профиля и всех родительских профилей. Более подробно о профилях и каталоге /etc/make.profile мы расскажем позже.

Если вы планируете вносить изменения в конфигурационные переменные, не изменяйте /etc/make.globals или make.defaults. Вместо этого пользуйтесь файлом /etc/make.conf, который имеет приоритет перед вышеуказанными файлами. Вы также обнаружите файл /etc/make.conf.example. Как понятно из его названия, это просто пример - Portage не использует этот файл.

Переменные Portage также можно устанавливать как переменные среды, но мы не рекомендуем этого делать.

Конфигурация, определяемая профилем

Мы уже встречались с каталогом /etc/make.profile. На самом деле это не каталог, а символическая ссылка на профиль, по умолчанию на тот, что содержится в /usr/portage/profiles, однако вы можете создавать свои собственные профили где угодно и ссылаться на них. Профиль, указанный ссылкой, является профилем, к которому принадлежит ваша система.

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

Конфигурация, задаваемая пользователем

Если вам необходимо изменить поведение Portage относительно установки программного обеспечения, вам потребуется отредактировать файлы, находящиеся в /etc/portage. Мы настоятельно рекомендуем вам пользоваться файлами из /etc/portage, не следует настраивать поведение Portage через переменные среды.

Внутри /etc/portage доступны следующие пути:

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

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

Изменение файлов Portage и размещения каталогов

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

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

Этот документ не претендует на статус справочника. Если вам необходим полный объем информации, пожалуйста, обратитесь к страницам справки по Portage и make.conf (man portage и man make.conf).

Хранение файлов

Дерево Portage

Дерево Portage размещается, по умолчанию, в /usr/portage. Это определяется значением переменной PORTDIR. Когда вы храните дерево Portage где-либо в другом месте (изменив эту переменную), не забывайте соответственно изменить символическую ссылку /etc/make.profile.

Если вы измените переменную PORTDIR, вам может потребоваться изменить и следующие переменные: PKGDIR, DISTDIR, RPMDIR, так как они не замечают изменений PORTDIR. Это связано с особенностями их обработки Portage.

Двоичные пакеты

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

Исходные коды

Исходные коды приложений хранятся в /var/calculate/remote/distfiles по умолчанию. Это определяется переменной DISTDIR.

Файлы RPM

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

База данных Portage

Portage хранит состояние вашей системы (какие пакеты установлены, какие файлы относятся к определенным пакетам и т. п.) в /var/db/pkg. Не изменяйте эти файлы вручную! Это может разрушить знание вашей системы Portage.

Кэш Portage

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

Сборка программного обеспечения

Временные файлы Portage

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

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

Каталог сборки

Portage создает специфичные каталоги сборки для каждого пакета внутри /var/tmp/portage. Это расположение задается переменной BUILD_PREFIX.

Размещение «живой файловой системы»

По умолчанию Portage устанавливает все файлы в текущую файловую систему (/), но это можно изменить, установив переменную окружения ROOT. Это может оказаться полезным при построении новых образов системы.

Ведение журнала

Журнал Ebuild

Portage может создавать отдельные файлы журнала для каждого файла ebuild, но только тогда, когда переменная PORT_LOGDIR указывает на место, доступное для записи для Portage (пользователя portage). По умолчанию эта переменная не установлена.

Спасибо!