/etc/portage/make.conf

From Gentoo Wiki
< /etc‎ | portage
Jump to:navigation Jump to:search
This page is a translated version of the page /etc/portage/make.conf and the translation is 90% complete.
Outdated translations are marked like this.

/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, и его изменение требует понимания и опыта в кросс-компиляции.

Предупреждение
Portage profiles already set the appropriate CHOST value, and updating it requires insight and experience in build chains.
Заметка
Starting with profile version 23.0 it is recommended to not to list CHOST in the make.conf file.[1]
См. также
За более подробной информацией обращайтесь к статье CHOST.

CFLAGS и CXXFLAGS

Переменные CFLAGS и CXXFLAGS задают флаги сборки и компиляции, которые будут использоваться для всех пакетов (с небольшими исключениями, когда для какого-то пакета отфильтровываются проблемные флаги). Переменная CFLAGS предназначена для приложений на C, в то время как переменная CXXFLAGS предназначена для приложений на C++. Большинство пользователей оставляют содержимое обеих переменных одинаковым.

ФАЙЛ /etc/portage/make.confЧасто используемые настройки для CFLAGS и CXXFLAGS
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.

ФАЙЛ /etc/portage/make.confПример определения CONFIG_PROTECT
CONFIG_PROTECT="/var/bind"

Также смотрите главу переменное окружение в Gentoo Handbook.


FEATURES

Переменная FEATURES содержит список возможностей Portage, которые пользователь желает включить в системе, влияющие на его поведение. Список по умолчанию включается с помощью /usr/share/portage/config/make.globals, но может быть легко изменен с помощью /etc/portage/make.conf. Поскольку FEATURES является инкрементальной переменной, добавление значений в нее не будет переопределять значений из профиля Gentoo.

ФАЙЛ /etc/portage/make.confДобавление keepwork в переменную FEATURES
FEATURES="keepwork"

Для более подробной информации посмотрите статью возможности Portage в Gentoo Handbook и статью FEATURES. Полный список всех доступных значений переменной FEATURES смотрите в man 5 make.conf.

См. также
За более подробной информацией обращайтесь к статье FEATURES.

GENTOO_MIRRORS

См. также
Смотрите статью GENTOO_MIRRORS.

MAKEOPTS

Переменная MAKEOPTS задаёт аргументы для make во время компиляции пакетов

ФАЙЛ /etc/portage/make.confРекомендуемые настройки для двух-ядерного процессора с включённым Hyper-Threading и 8 ГБ ОЗУ
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).

Например, чтобы запустить три задачи сборки одновременно:

ФАЙЛ /etc/portage/make.confНастройка для сборки пакетов в 3 параллельных задачах
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, и так далее.

ФАЙЛ /etc/portage/make.confНастройка переменной PORTAGE_TMPDIR по умолчанию
PORTAGE_TMPDIR="/var/tmp"

On some systems, /var/tmp/ may be mounted with the noexec option. The following error would be displayed by emerge when building packages:

user $emerge --ask package
Can not execute files in /var/tmp/portage
Likely cause is that you've mounted it with one of the
following mount options: 'noexec', 'user', 'users'
 
Please make sure that portage can execute files in this directory.

In this case, if removing the offending option from /etc/fstab isn't possible, PORTAGE_TMPDIR should be set to a different directory.

Если имеется достаточно памяти, сборка пакетов может быть ускорена путём монтирования 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.


File integrity check and unpacking is a non-atomic operation, allowing for an attack where a file is swapped in between, possibly leading to compromise the system.
ФАЙЛ /etc/portage/make.confИспользование другого каталога в DISTDIR
DISTDIR=/var/gentoo/distfiles

Для более подробной информации см. статью DISTDIR.

PKGDIR

PKGDIR/ru

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 какие лицензии программного обеспечения допустимы. Пакеты, у которых не разрешенная лицензия, не будет установлены на систему.

ФАЙЛ /etc/portage/make.confРазрешение всех лицензий для всех пакетов (плохая идея)
ACCEPT_LICENSE="*"

The preferred way to accept all licenses is to set -@EULA which allows users to check over the terms of proprietary software.

ФАЙЛ /etc/portage/make.confTo accept all licenses on all packages expect proprietary
ACCEPT_LICENSE="* -@EULA"
ФАЙЛ /etc/portage/make.confРазрешить только свободные
ACCEPT_LICENSE="-* @FREE"

LINGUAS

ФАЙЛ /etc/portage/make.conf
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.[2]

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 в руководстве по локализации.

ФАЙЛ /etc/portage/make.conf
# Определение значений локализации
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 подходящих значений добавит зависимость от нужных драйверов:

ФАЙЛ /etc/portage/make.confУстановка переменной VIDEO_CARDS в intel nvidia radeon vesa
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.

См. также

Внешние ресурсы

Ссылки