Configuring your system with variables

Updated 4 July 2019

Configuring Portage

Как отмечалось ранее, Portage настраивается с помощью множества переменных, которые задаются в файле /etc/portage/make.conf.

Compilation options

Configuration and compilation

Когда Portage собирает приложения, компилятору и сценарию конфигурации передаются значения следующих переменных:

  • CFLAGS и CXXFLAGS определяют желаемые флаги компилятора для C и C++
  • CHOST определяет информацию об используемой платформе для сценария конфигурации приложения
  • MAKEOPTS передается команде make и обычно применяется для установки степени распараллеливания компиляции. Более подробная информация о параметрах команды make находится на странице справки по make.

Переменная USE также используется при конфигурировании и компиляции, но о ней уже много и подробно говорилось в предыдущих главах.

Installation options

Когда Portage устанавливает (merge) новую версию программного продукта, файлы более старых версий удаляются из системы. Portage дает пользователю 5-ти секундную задержку перед стиранием старых версий. Эти 5 секунд задаются переменной CLEAN_DELAY.

Protection of configuration files

Locations protected by Portage

Portage записывает файлы, предоставляемые новой версией программы, поверх старых, если только эти файлы не расположены в защищенном месте. Which directories to protect is defined by the CONFIG_PROTECT variable. Обычно, это места расположения файлов конфигурации. Directories must be space-separated.

Файл, который должен быть записан в такой защищенный каталог, переименовывается, а пользователь получает предупреждение о наличии новой версии (обычно) файла конфигурации.

Узнать текущее значение CONFIG_PROTECT можно из сообщений emerge --info:

emerge --info | grep 'CONFIG_PROTECT='

Более подробная информация о защите конфигурационных файлов, осуществляемой системой Portage, доступна по команде emerge:

emerge --help config

Excluded directories

Чтобы снять защиту с определенных подкаталогов защищенного каталога, можно использовать переменную CONFIG_PROTECT_MASK.

Download options

Server location

Если запрошенная информация или данные отсутствуют в вашей системе, Portage обращается за ними в интернет. Расположение серверов для различных каналов получения информации задается следующими переменными:

  • GENTOO_MIRRORS определяет список адресов серверов, содержащих исходный код (distfiles)
  • PORTAGE_BINHOST указывает расположение определенного сервера, содержащего двоичные пакеты (prebuilt packages) для вашей системы

Третья переменная содержит расположение сервера rsync, который используется при обновлении вашего дерева портежей:

  • SYNC указывает сервер, с которого Portage извлекает дерево портежей

Переменные GENTOO_MIRRORS и SYNC можно установить автоматически программой mirrorselect. Перед тем, как использовать, ее нужно установить, выполнив emerge mirrorselect. За дополнительной информацией обращайтесь к оперативной справке mirrorselect:

mirrorselect --help

Если вы вынуждены использовать прокси-сервер, для его указания можно использовать переменные HTTP_PROXY, FTP_PROXY и RSYNC_PROXY.

Commands for extraction

When Portage needs to extract source code, wget is used by default. This behaviour can be modified by editing the FETCHCOMMAND value.

Portage can resume previously aborted fetching source code. The default is wget, but this can be modified by editing RESUMECOMMAND.

Make sure that FETCHCOMMAND and RESUMECOMMAND save the code in the right place. Внутри этих переменных следует использовать \${URI} и \${DISTDIR}, для указания расположения исходных кодов и distfiles, соответственно.

Также существует возможность определить индивидуальные настройки для различных протоколов, используя FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP и т.п.

Rsync configuration

Вы не можете заменить команду rsync, которую Portage использует для обновления дерева портежей, но можно установить несколько переменных, определяющих ее поведение:

  • RSYNC_EXCLUDEFROM указывает на файл, где перечислены пакеты и/или категории, которые rsync должна игнорировать во время обновления.
  • RSYNC_RETRIES определяет, сколько раз rsync должна пытаться соединиться с зеркалом, на которое указывает переменная SYNC. По умолчанию равна 3.
  • RSYNC_TIMEOUT определяет количество секунд, в течение которого rsync соединение может бездействовать, перед тем как rsync сочтет его превысившим время ожидания. По умолчанию равна 180, но если вы используете соединение по модему или у вас медленный компьютер, возможно, следует установить значение этой переменной равным 300 или большим.

Gentoo configuration

Selecting a branch

You can switch between branches by redefining ACCEPT_KEYWORDS. By default, stable is used. Your architecture will be detected automatically. More information about Gento branches can be found in the next chapter.

Portage functionality

To finely tune Portage functionality, feel free to edit the FEATURES variable. The functionality itself was covered previously. See, for example, Portage features.

How Portage behaves

Resource allocation

С помощью переменной PORTAGE_NICENESS можно увеличивать или уменьшать значение nice, с которым выполняется Portage. The PORTAGE_NICENESS value _is added to the current nice value.

To learn more about nice parameters, refer to the man page:

man nice

Output configuration

Переменная NOCOLOR (по умолчанию "false") определяет, следует ли Portage отключить цветовую раскраску своих сообщений.