Handbook:AMD64/Portage/Files

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:AMD64/Portage/Files and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
AMD64 Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система init-скриптов
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Файлы Portage

Конфигурационные директивы

Portage поставляется с настройками по умолчанию, которые хранятся в /usr/share/portage/config/make.globals. Все настройки Portage обрабатываются с помощью переменных. Какие переменные использует Portage и для чего они нужны, будет описано позже.

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

Если требуется изменить конфигурационные переменные, не меняйте /usr/share/portage/config/make.globals или make.defaults. Вместо этого используйте файл /etc/portage/make.conf, у которого больший приоритет над предыдущими файлами. Для получения дополнительной информации прочитайте /usr/share/portage/config/make.conf.example. Как следует из названия, это просто пример — Portage не использует этот файл.

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

Информация из определенного профиля

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

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

Пользовательская конфигурация

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

Пользователи могут создать в /etc/portage/ следующие файлы:

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

Не обязательно они должны быть файлами; это могут быть каталоги, содержащие по одному файлу для пакета. Больше информации о каталоге /etc/portage/ и весь список возможных файлов, которые можно создать там, можно найти в man-странице Portage:

user $man portage

Изменение файлов Portage и расположение каталогов

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

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

Данная статья не предназначена для использования в качестве полноценного справочника. С полной информацией можно ознакомиться в man-страницах portage и make.conf:

user $man portage
user $man make.conf

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

Gentoo репозиторий ebuild-файлов

Gentoo репозиторий ebuild-файлов по умолчанию находится в /usr/portage. Месторасположение определяется файлом repos.conf, пример которого можно найти в /usr/share/portage/config/repos.conf. Чтобы изменить значения по умолчанию, скопируйте этот файл в /etc/portage/repos.conf/gentoo.conf и измените location. Не забудьте сменить символьную ссылку на /etc/portage/make.profile, если хотите хранить (меняя переменную) Gentoo репозиторий ebuild-файлов в другом месте.

После изменения настройки location в /etc/portage/repos.conf/gentoo.conf рекомендуется изменить следующие переменные /etc/portage/make.conf, так как они не заметят изменений в location. Portage так работает с переменными: PKGDIR, DISTDIR, RPMDIR.

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

Хотя по умолчанию Portage не использует двоичные пакеты, в нем есть широкая поддержка их. Когда Portage просят установить бинарный пакет, он будет искать их в каталоге /usr/portage/packages. Этот каталог определяется переменной PKGDIR.

Исходный код

По умолчанию исходный код для приложений хранится в каталоге /usr/portage/distfiles. Этот каталог определяется переменной DISTDIR.

База Portage

Portage хранит состояние системы (какие пакеты установлены, какие файлы какому пакету принадлежат, ...) в каталоге /var/db/pkg.

Предупреждение
Не изменяйте эти файлы вручную! Это может заставить Portage видеть систему по другому.

Кеш Portage

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

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

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

Временные файлы Portage по умолчанию хранятся в /var/tmp/. Этот каталог определяется с помощью переменной PORTAGE_TMPDIR.

Каталог компиляции

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

Расположение реальной системы

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

Возможности журналирования

Журналироване для ebuild

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

Если переменная PORT_LOGDIR не определена и используется elog, тогда можно получить журналы сборки и любые другие журналы, которые сохраняются программой elog, как показано ниже.

Portage предлагает гибкую систему контроля над журналированием с помощью программы elog:

  • PORTAGE_ELOG_CLASSES: определяет какие виды сообщений будут записываться в журнал. Разделяя пробелами можно указать любую комбинацию из: info, warn, error, log и qa.
    • info: журналирует "einfo" сообщения от ebuild
    • warn: журналирует "ewarn" сообщения от ebuild
    • error: журналирует "eerror" сообщения от ebuild
    • log: журналирует the "elog" сообщения, которые есть в некоторых ebuild
    • qa: журналирует "QA Notice" сообщения от ebuild
  • PORTAGE_ELOG_SYSTEM: выбирает модуль(и), которые будут обрабатывать сообщения журналов. Если оставить пустым, то журналирование будет отключено. Разделяя пробелами можно использовать любую комбинацию из: save, custom, syslog, mail, save_summary и mail_summary. По крайней мере хотя бы один модуль должен быть задействован, чтобы использовать elog.
    • save: сохраняет один журнал для каждого пакета в $PORT_LOGDIR/elog, или /var/log/portage/elog, если $PORT_LOGDIR не определен.
    • custom: передает все сообщения пользовательской команде, которая определена в $PORTAGE_ELOG_COMMAND; об этом будет рассказано позже.
    • syslog: передает все сообщения установленной программе журналирования.
    • mail: передает все сообщения на определенный пользователем в $PORTAGE_ELOG_MAILURI почтовый сервер; об этом будет рассказано позже. Для работы этой возможности elog необходим >=portage-2.1.1.
    • save_summary: похоже на save, но еще сохраняет все сообщения в $PORT_LOGDIR/elog/summary.log или /var/log/portage/elog/summary.log, если $PORT_LOGDIR не определена.
    • mail_summary: похоже на mail, но еще отправляет все сообщения в одном письме, когда emerge завершает работу.
  • PORTAGE_ELOG_COMMAND: эта переменная используется только в случае когда используется модуль custom. Пользователи могут определить команду для обработки сообщений журнала. Обратите внимание, что команда может использовать две переменные: ${PACKAGE} — это имя и версия пакет, а ${LOGFILE} — это полный путь до файла журнала. Например:
Код Пример определения PORTAGE_ELOG_COMMAND
PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
  • PORTAGE_ELOG_MAILURI: эта переменная содержит настройки для модуля mail, такие как адрес, логин, пароль, почтовый сервер и номер порта. По умолчанию это "root@localhost localhost". Следующий пример для сервера SMTP, который требует аутентификацию на основе логина и пароля на определённом порту (по умолчанию 25):
Код Пример определения PORTAGE_ELOG_MAILURI
PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
  • PORTAGE_ELOG_MAILFROM: позволяет пользователю настроить адрес "from" для отправленных по почте журналов; если ничего не задано, то по умолчанию "Portage".
  • PORTAGE_ELOG_MAILSUBJECT: позволяет пользователям создать тему для писем с журналами. Обратите внимание, что можно использовать две переменные: ${PACKAGE} отобразит имя и версию пакета, а ${HOST} отобразит полностью определенное доменное имя (FQDN) хоста на котором запущен Portage. Например:
Код Пример определения PORTAGE_ELOG_MAILSUBJECT
PORTAGE_ELOG_MAILSUBJECT="package \${PACKAGE} was merged on \${HOST} with some messages"
Важно
Пользователи, которые использовали Portage-2.0.* с enotice, должны удалить enotice, так как он не совместим с elog.