/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), дзеркала Portage та ін.
Під час встановлення файлу stage встановлюється його спрощена версія. Приклад його налаштування знаходиться на /usr/share/portage/config/make.conf.example.
Як і більшість інших файлів конфігурації Portage, make.conf може бути й каталогом (директорією). Її вміст буде додано до суми, начебто це один файл.
У довіднику є інформація про make.conf, особливо у секціях параметри USE, Функції Portage та Змінні. Див. також 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, безпечні CFLAGS, і CFLAGS та CXXFLAGS у довіднику Gentoo для докладнішої інформації. Див. також FAQ.
CONFIG_PROTECT
Змінна CONFIG_PROTECT містить список значень, відокремлених один від одного пробілами, що містить каталоги, в які Portage не копіюватиме нові версії файлів, а вважатиме їх файлами конфігурації, і дозволить користувачеві вручну перевірити зміни, і вирішити, потрібні вони чи ні.
A current list of presently protected locations can be displayed with portageq:
user $
portageq envvar CONFIG_PROTECT
/etc /usr/share/config /usr/share/gnupg/qualified.txt
Using portageq is a short hand alternative to running a regular expression search on verbose, informational output from the emerge command:
user $
emerge --verbose --info | grep -E '^CONFIG_PROTECT='
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
Files or subdirectories defined within the CONFIG_PROTECT can be excluded from protection through the CONFIG_PROTECT_MASK variable. Masking is useful when a parent directory should be protected, but a certain child directory beneath it.
Змінна обробляється Portage і містить значення з профілю користувача, системного оточення (яке часто використовується додатками, які оновлюють змінні через їх файл /etc/env.d),а також налаштувань користувача з файлу /etc/portage/make.conf.
CONFIG_PROTECT="/var/bind"
Для більш детальної інформації дивись розділЗахист конфігураційних файлів в настільній книзі Gentoo.
FEATURES
Див. FEATURES для подробної інформації.
GENTOO_MIRRORS
Див. GENTOO_MIRRORS.
MAKEOPTS
Змінна MAKEOPTS використовується для визначення аргументів, що передаються до make під час збирання пакунків з коду.
MAKEOPTS="-j4"
Див. MAKEOPTS для подробної інформації.
Почитайте про EMERGE_DEFAULT_OPTS, оскільки ця змінна також впливає на поведінку збірки.
EMERGE_DEFAULT_OPTS
PORTAGE_SCHEDULING_POLICY
Див. приємність Portage
PORTAGE_TMPDIR
Змінна PORTAGE_TMPDIR визначає розташування тимчасових файлів Portage. За замовчуванням це значення дорівнює /var/tmp, що визначує /var/tmp/portage як розташування збірки, /var/tmp/ccache для підтримки ccache Portage і так далі.
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 у оперативній пам'яті. Докладніші відомості наведено у статті Portage TMPDIR на tmpfs.
DISTDIR
Змінна DISTDIR визначає положення, де Portage буде зберігати викачані архіви з вихідними кодами. За замовчуванням це каталог /usr/portage/distfiles.
Цей каталог, який часто називається каталогом "distfiles", буде зберігати архіви вихідних кодів всіх програм встановлених (або які намагалися встановити) в системі. Однак даний каталог не очищається автоматично, тому користувачі повинні використовувати спеціальні програми, наприклад команда eclean-dist (яка поставляється як частина пакету app-portage/gentoolkit), щоб розмір даного каталогу не вийшов з-під контролю. Для більш детальної інформації прочитайте статтю Eclean.
Користувачі можуть встановити змінну 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
For more information, please refer to the DISTDIR article.</onlyinclude>
Source of archives
To download source code archives, Portage will download files from servers defined in the GENTOO_MIRRORS variable first (to alleviate load on upstream project resources and for other reasons). The SRC_URI variable in individual ebuilds, points to the package's original source files, which is originally downloaded by the ebuild maintainers during ebuild creation and development.
Part of ebuild development is the creation of Manifest files, which ensure the upstream source files are not modified from the time they are downloaded by the ebuild developer, distributed to Gentoo's mirror system, then to their destination on the endpoint system.
Bypassing Gentoo mirrors
{{{1}}}
To download the source archives bypassing Gentoo mirrors, set the GENTOO_MIRRORS variable to an empty value from the command-line. For example:
root #
GENTOO_MIRRORS="" emerge --ask www-client/firefox
Дивіться також
- Knowledge Base: Remove obsoleted distfiles
- Eclean - утиліта очищення архівів і бінарних пакетів використовуваних Portage.
PKGDIR
USE
Змінна USE дозволяє встановити або вимкнути прапори USE на рівні системи. Ця змінна є списком, розділеним пробілами, і може займати декілька рядків.
USE="-kde -qt5 ldap"
Повний опис див. у статті про прапори USE. Див. Керування прапорами USE для кожного пакунка та файл /etc/portage/package.use щодо налаштування прапорів 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"
USE_EXPAND
Змінна USE_EXPAND - це список, встановлений у profiles/base/make.defaults, починаючи з Portage 2.0.51.20. [2]
CPU_FLAGS_*
Докладнішу інформацію наведено у статті CPU_FLAGS_*.
Змінна CPU_FLAGS_* інформує Portage про прапори процесора (функції), дозволені процесором. Ця інформація використовується для оптимізації збірок пакунків спеціально для цільових функцій. Наразі підтримуються 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
Ці прапори можна додати до /etc/portage/make.conf або /etc/portage/package.use/.
INPUT_DEVICES
Дивіться розділ make.conf статті Xorg/Guide і можливі значення.
L10N
Дивіться L10N у посібнику з локалізації..
# Визначення значень локалізації
L10N="de pt-BR en en-US en-GB"
Хоча звичайні дволітерні мовні коди (наприклад,
de
або fr
) ідентичні в LINGUAS і L10N, більш складні записи мають інший синтаксис, оскільки L10N використовує мовні теги IETF (також відомі як BCP 47). Наприклад, pt_BR
і sr@latin
в LINGUAS стають pt-BR
і sr-Latn
в L10N відповідно.VIDEO_CARDS
Можливі значення цієї змінної USE_EXPAND дивіться у розділі VIDEO_CARDS.
Встановлення параметра VIDEO_CARDS у відповідне(і) значення(я) призведе до встановлення правильних драйверів:
VIDEO_CARDS="intel nvidia radeon vesa"
Підставте назву драйвера (драйверів), які потрібно використати. У наступній таблиці наведено типові комбінації комп'ютерів і відеокарт:
Архітектура | Дискретна відеокарта | VIDEO_CARDS |
---|---|---|
Intel x86 | Ні | Див. Intel#підтримка функцій |
x86/ARM | Nvidia | nvidia
|
Будь-яка | Nvidia, окрім Maxwell, Pascal так Volta | nouveau
|
Будь-яка | AMD від Sea Islands | amdgpu radeonsi
|
Будь-яка | ATI та старіші AMD | Див. radeon#підтримка функцій |
Будь-яка | 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)
- Emerge issues with having
/.git/index.lock
in root
Зовнішні ресурси
- 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