/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, и его изменение требует понимания и опыта в кросс-компиляции.
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++. Большинство пользователей оставляют содержимое обеих переменных одинаковым.
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"
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.
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="*"
The preferred way to accept all licenses is to set -@EULA which allows users to check over the terms of proprietary software.
ACCEPT_LICENSE="* -@EULA"
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.[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 в руководстве по локализации.
# Определение значений локализации
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.
Ссылки
- ↑ Profile upgrade to version 23.0 available, gentoo.org, March 22, 2024. Retrieved on March 24, 2024.
- ↑ https://devmanual.gentoo.org/general-concepts/use-flags/#use_expand-and-arch-use-flags