/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), дзеркала Portage та ін.

Під час встановлення файлу stage встановлюється його спрощена версія. Приклад його налаштування знаходиться на /usr/share/portage/config/make.conf.example.

Як і більшість інших файлів конфігурації Portage, make.conf може бути й каталогом (директорією). Її вміст буде додано до суми, начебто це один файл.

See also
У довіднику є інформація про 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]
See also
Див. також CHOST для додаткової інформації.

CFLAGS та CXXFLAGS

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

FILE /etc/portage/make.confЗагальноприйняте розумне налаштування для CFLAGS та CXXFLAGS
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
See also
Див. оптимізація 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.

FILE /etc/portage/make.confExample CONFIG_PROTECT definitions
CONFIG_PROTECT="/var/bind"

Для більш детальної інформації дивись розділЗахист конфігураційних файлів в настільній книзі Gentoo.


FEATURES

FEATURES/uk

See also
Див. FEATURES для подробної інформації.

GENTOO_MIRRORS

See also
Див. GENTOO_MIRRORS.

MAKEOPTS

Змінна MAKEOPTS використовується для визначення аргументів, що передаються до make під час збирання пакунків з коду.

FILE /etc/portage/make.confРекомендоване налаштування для двоядерного процесора з Hyper-Threading та 8 ГБ пам'яті
MAKEOPTS="-j4"
See also
Див. MAKEOPTS для подробної інформації.
Примітка
Почитайте про EMERGE_DEFAULT_OPTS, оскільки ця змінна також впливає на поведінку збірки.

EMERGE_DEFAULT_OPTS

EMERGE DEFAULT OPTS/uk

PORTAGE_SCHEDULING_POLICY

PORTAGE_TMPDIR

Змінна PORTAGE_TMPDIR визначає розташування тимчасових файлів Portage. За замовчуванням це значення дорівнює /var/tmp, що визначує /var/tmp/portage як розташування збірки, /var/tmp/ccache для підтримки ccache Portage і так далі.

FILE /etc/portage/make.confНалаштування за замовчуванням
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.


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.
FILE /etc/portage/make.confUsing a different DISTDIR 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

Дивіться також

PKGDIR

PKGDIR/uk

USE

Змінна USE дозволяє встановити або вимкнути прапори USE на рівні системи. Ця змінна є списком, розділеним пробілами, і може займати декілька рядків.

USE="-kde -qt5 ldap"
See also
Повний опис див. у статті про прапори USE. Див. Керування прапорами USE для кожного пакунка та файл /etc/portage/package.use щодо налаштування прапорів USE для окремого пакунка.
Примітка
Завжди зважуйте, чи варто встановлювати прапорець USE глобально і які наслідки це матиме для системи, чи краще просто встановити прапорець для одного або декількох пакунків окремо.
Tip
Прапорець USE можна тимчасово встановити у командному рядку, щоб перевірити, який ефект він матиме, перш ніж записувати його до файлу world: USE="[USE прапорець для тесту]" emerge --pretend --verbose --update --deep --newuse world

ACCEPT_LICENSE

Змінна ACCEPT_LICENSE вказує Portage, які ліцензії на ПЗ дозволено. Пакунки з неприйнятною ліцензією не можуть бути встановлені у системі.

FILE /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.

FILE /etc/portage/make.confTo accept all licenses on all packages expect proprietary
ACCEPT_LICENSE="* -@EULA"
FILE /etc/portage/make.confПриймати лише вільне ПЗ
ACCEPT_LICENSE="-* @FREE"

LINGUAS

FILE /etc/portage/make.conf
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_*

See also
Докладнішу інформацію наведено у статті 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 у посібнику з локалізації..

FILE /etc/portage/make.conf
# Визначення значень локалізації
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 у відповідне(і) значення(я) призведе до встановлення правильних драйверів:

FILE /etc/portage/make.confВставлення VIDEO_CARDS на intel nvidia radeon vesa
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.

Див. також

Зовнішні ресурси

Посилання