/etc/portage/make.conf
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
/etc/portage/make.conf (ранее /etc/make.conf) — это главный файл конфигурации, используемый для настройки окружения Portage на глобальном уровне. Каталог /etc/portage содержит большинство остальных файлов конфигурации для Portage.
Настройки в make.conf действуют для каждого устанавливаемого пакета. Эти настройки управляют многими функциями Portage, например, USE-флаги, настройки локализации (L10N), зеркала и т.д.
Очень упрощённая версия устанавливается при распаковке файла Stage. Пример конфигурационного файла можно найти в /usr/share/portage/config/make.conf.example.
Как и большинство других конфигурационных файлов Portage, make.conf может быть каталогом, а его содержимое будет объединено, как если бы они были в едином файле.
Руководство покрывает использование make.conf, в частности разделы USE-флаги, Возможности Portage (FEATURES) и Переменные. См. справочную страницу man make.conf для более подробной документации.
Приоритет
Окончательная конфигурация Portage основывается не только на make.conf. Глобальные настройки, определённые в этом файле, могут быть уточнены (или переопределены) для каждого пакета в файлах /etc/portage/package.use/, а также через переменные окружения. Также доступны настройки по умолчанию, определяемые дистрибутивом (часть через настройки по умолчанию для Portage, часть через используемый профиль Gentoo).
Хотя Portage всё ещё поддерживает старое расположение /etc/make.conf, рекомендуется использовать новое /etc/portage/make.conf. Когда доступны оба файла, настройки из /etc/portage/make.conf имеют больший приоритет, чем настройки из файла /etc/make.conf.
Переменные
Есть множество переменных, которые можно настроить в файле make.conf. Только наиболее часто используемые описаны далее в этой статье, с примерами и ссылками на более подробные статьи (когда это возможно). Более подробную информацию и полный список переменных смотрите в man-странице о make.conf запустив:
user $
man make.conf
Большинство переменных необязательны, могут занимать несколько строк, и не должны появляться больше одного раза.
Для разных конфигураций потребуются разные значения переменных. Не воспринимайте примеры ниже как окончательные или минимальные настройки — установите только необходимые переменные.
CHOST
Переменная CHOST передаётся во время настройки пакета в ebuild-файлах, чтобы задать систему, для которой будет собираться этот пакет. Обратите внимание, что профиль Gentoo уже устанавливает подходящее значение CHOST, и его изменение требует понимания и опыта в кросс-компиляции.
За более подробной информацией обращайтесь к статье CHOST.
CFLAGS и CXXFLAGS
Переменные CFLAGS и CXXFLAGS задают флаги сборки и компиляции, которые будут использоваться для всех пакетов (с небольшими исключениями, когда для какого-то пакета отфильтровываются проблемные флаги). Переменная CFLAGS предназначена для приложений на C, в то время как переменная CXXFLAGS предназначена для приложений на C++. Большинство пользователей оставляют содержимое обеих переменных одинаковым.
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
За более подробной информацией обращайтесь к статье Оптимизация GCC, safe CFLAGS и CFLAGS и CXXFLAGS в Руководстве Gentoo. См. также ЧаВо.
CONFIG_PROTECT
Переменная CONFIG_PROTECT содержит список файлов и каталогов, отделенных друг от друга пробелами, которые Portage защитит от автоматической модификации. Предлагаемые изменения для защищенных расположений конфигурации требуют ручного слияния со стороны системного администратора (см. dispatch-conf или похожие утилиты слияния).
Текущий список защищённых путей можно отобразить с помощью portageq:
user $
portageq envvar CONFIG_PROTECT
/etc /usr/share/config /usr/share/gnupg/qualified.txt
Использование portageq является простой альтернативой запуска поиска с помощью регулярного выражения в подробном выводе команды emerge:
user $
emerge --verbose --info | grep -E '^CONFIG_PROTECT='
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
Файлы или подкаталоги, определенные в CONFIG_PROTECT, могут быть исключены из защиты через переменную CONFIG_PROTECT_MASK. Маскирование полезно, когда должен быть защищен родительский каталог, но не подкаталог внутри него.
Переменная, с разумными значениями, по умолчания обрабатывается Portage и пользовательским Gentoo профилем. Переменная может быть расширенна с помощью системного окружения (которое часто используется приложениями, которые обновляют переменные через их файл в /etc/env.d), а также настроек пользователя из файла /etc/portage/make.conf.
CONFIG_PROTECT="/var/bind"
Также смотрите главу переменное окружение в Gentoo Handbook.
FEATURES
Переменная FEATURES содержит список возможностей Portage, которые пользователь желает включить в системе, влияющие на его поведение. Список по умолчанию включается с помощью /usr/share/portage/config/make.globals, но может быть легко изменен с помощью /etc/portage/make.conf. Поскольку FEATURES является инкрементальной переменной, добавление значений в нее не будет переопределять значений из профиля Gentoo.
FEATURES="keepwork"
Для более подробной информации посмотрите статью возможности Portage в Gentoo Handbook и статью FEATURES. Полный список всех доступных значений переменной FEATURES смотрите в man 5 make.conf.
За более подробной информацией обращайтесь к статье FEATURES.
GENTOO_MIRRORS
Смотрите статью GENTOO_MIRRORS.
MAKEOPTS
Переменная MAKEOPTS задаёт аргументы для make во время компиляции пакетов
MAKEOPTS="-j4"
За более подробной информацией обращайтесь к статье MAKEOPTS.
Просмотрите раздел /etc/portage/make.conf, эта переменная также влияет на процесс сборки пакетов.
EMERGE_DEFAULT_OPTS
EMERGE_DEFAULT_OPTS — это переменная, которая определяет параметры, которые будут добавлены к параметрам запуска команды emerge.
EMERGE_DEFAULT_OPTS часто используется для определения количества одновременно работающих задач emerge с помощью параметров --jobs N
и --load-average X.Y
, которые ограничивают для Portage количество одновременно собираемых пакетов и среднюю нагрузку на систему (load average).
Например, чтобы запустить три задачи сборки одновременно:
EMERGE_DEFAULT_OPTS="--jobs 3"
Для более подробной информации смотрите статью EMERGE_DEFAULT_OPTS.
PORTAGE_SCHEDULING_POLICY
Смотрите статью Portage niceness.
PORTAGE_TMPDIR
Переменная PORTAGE_TMPDIR определяет расположение временных файлов для Portage. Значение по умолчанию равно /var/tmp, вследствие чего для сборки используется каталог /var/tmp/portage, для поддержки ccache — /var/tmp/ccache, и так далее.
PORTAGE_TMPDIR="/var/tmp"
Если имеется достаточно памяти, сборка пакетов может быть ускорена путём монтирования PORTAGE_TMPDIR в TMPFS. За более подробной информацией обращайтесь к статье Portage TMPDIR на tmpfs.
DISTDIR
Переменная DISTDIR определяет каталог, где Portage будет хранить скачанные архивы с исходным кодом По умолчанию это путь /var/cache/distfiles для новых установок. Ранее был выставлен путь ${PORTDIR}/distfiles, который обрабатывался по умолчанию в /usr/portage/distfiles.
Пользователи могут установить переменную DISTDIR в /etc/portage/make.conf:
Beware where you place your DISTDIR! Only trusted users should be granted write access to this location.
DISTDIR=/var/gentoo/distfiles
Для более подробной информации см. статью DISTDIR.
PKGDIR
USE
Переменная USE активирует или деактивирует USE-флаги для всей системы. Эта переменная содержит флаги, разделённые пробелом, и может занимать несколько строк.
USE="-kde -qt5 ldap"
Смотрите статью USE-флаги для полного объяснения. Для информации о установке USE-флагов для конкретного пакета смотрите раздел в Руководстве Объявление USE-флагов для отдельных пакетов и статью о файле /etc/portage/package.use.
Всегда учитывайте, стоит ли устанавливать USE-флаг глобально и какие последствия это будет иметь для системы, или лучше просто установить флаг для конкретно одного или нескольких пакетов.
USE-флаг можно выставить временно в командной строке, чтобы проверить его эффект перед записью в файл world (всех пакетов): USE="[тестируемый USE-флаг]" emerge --pretend --verbose --update --deep --newuse world
ACCEPT_LICENSE
Переменная ACCEPT_LICENSE сообщает Portage какие лицензии программного обеспечения допустимы. Пакеты, у которых не разрешенная лицензия, не будет установлены на систему.
ACCEPT_LICENSE="*"
ACCEPT_LICENSE="-* @FREE"
LINGUAS
Смотрите LINGUAS в руководстве по локализации.
LINGUAS="de pt_BR en en_US en_GB ru ru_RU"
USE_EXPAND
Переменная USE_EXPAND является списком, задаваемым (на момент Portage версии 2.0.51.20) в profiles/base/make.defaults.[1]
CPU_FLAGS_*
За более подробной информацией обращайтесь к статье CPU_FLAGS_*.
Переменная CPU_FLAGS_* сообщает Portage о доступных наборах инструкций и других возможностей процессора (CPU flags/features). Эта информация используется для оптимизации программы специально под цели с такими возможностями. В данный момент поддерживаются CPU_FLAGS_X86 (для архитектур amd64 и x86), CPU_FLAGS_ARM (для архитектур arm и arm64) и CPU_FLAGS_PPC (для архитектур ppc и ppc64).
Утилита cpuid2cpuflags (в пакете app-portage/cpuid2cpuflags) может быть использована, чтобы получить полный список возможностей, поддерживаемых системным процессором. После установки пакета, выполните команду:
user $
cpuid2cpuflags
CPU_FLAGS_X86: aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3
Затем, эти флаги могут быть добавлены в can /etc/portage/make.conf или /etc/portage/package.use/.
INPUT_DEVICES
Смотрите также раздел make.conf из статьи Xorg/Руководство и страницу с возможными значениями.
L10N
Смотрите L10N в руководстве по локализации.
# Определение значений локализации
L10N="de pt-BR en en-US en-GB ru ru-RU"
Хотя распространенные двухбуквенные коды языков (например
de
или fr
) идентичны в переменных LINGUAS и L10N, более сложные коды используют другой синтаксис, поскольку переменная L10N использует языковые метки IETF (или BCP 47). Например, pt_BR
и sr@latin
в LINGUAS становятся pt-BR
и sr-Latn
в L10N, соответственно.VIDEO_CARDS
Возможные значения переменной USE_EXPAND можно найти на странице p.g.o VIDEO_CARDS.
Добавление в переменную VIDEO_CARDS подходящих значений добавит зависимость от нужных драйверов:
VIDEO_CARDS="intel nvidia radeon vesa"
Установите названия драйверов, которые будут использоваться. В следующей таблице приведены распространенные сочетания компьютеров и видеокарт:
Компьютер | Дискретная видеокарта | VIDEO_CARDS |
---|---|---|
Intel x86 | Нет | См. Intel#Feature support |
x86/ARM | Nvidia | nvidia
|
Любой | Nvidia кроме Maxwell, Pascal и Volta | nouveau
|
Любой | AMD начиная с Sea Islands | amdgpu radeonsi
|
Любой | ATI или старый AMD | См. radeon#Feature support |
Любой | Intel | intel
|
Raspberry Pi | н/д | vc4
|
QEMU/KVM | Любой | virgl
|
WSL | Любой | d3d12
|
После установки или изменения VIDEO_CARDS не забудьте обновить систему с помощью следующей команды, чтобы применить изменения:
root #
emerge --ask --changed-use --deep @world
Для обычного пользователя, при использовании окружения рабочего стола, эта переменная должна быть явно задана. Для дальнейшей информации см. раздел make.conf в Руководстве Xorg.
Для получения более подробной информации см. статьи AMDGPU, Intel, Nouveau или NVIDIA.
См. также
- Переменные Portage (Руководство AMD64)
- Возможности Portage (Руководство AMD64)
- Переменные окружения (Руководство AMD64)
- Продвинутые возможности Portage (Руководство AMD64)
- Проблемы с установкой при наличии
/.git/index.lock
в корне ФС
Внешние ресурсы
- make.conf - параметры для Portage — страница справки (man) для make.conf.