EMERGE_DEFAULT_OPTS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page EMERGE DEFAULT OPTS and the translation is 100% complete.

EMERGE_DEFAULT_OPTS — это переменная, которая определяет параметры, которые будут добавлены к параметрам запуска команды emerge.

EMERGE_DEFAULT_OPTS часто используется для определения количества одновременно работающих задач emerge с помощью параметров --jobs N и --load-average X.Y, которые ограничивают для Portage количество одновременно собираемых пакетов и среднюю нагрузку на систему (load average).

Популярные примеры использования

Параллельная сборка

С --jobs N (короткое обозначение: -jN), emerge запускает N задач одновременно (без аргумента, параметр -j займет всё процессорное время, создавая задачи компиляции при малейшем появлении свободных ресурсов — это не рекомендуется). Типичное значение для N обычно равно количеству ядер, но не больше процессов, чем кол-во ОЗУ, разделённое на 2 ГБ.

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

ФАЙЛ /etc/portage/make.confНастройка для сборки пакетов в 3 параллельных задачах
EMERGE_DEFAULT_OPTS="--jobs 3"

В случае использования --load-average X.Y (короткое обозначение: -lX.Y), emerge попытается держать среднюю нагрузку на систему меньше чем X.Y (число с плавающей точкой). Если также указан --jobs, то команда будет работать в указанных данным параметром пределах.

Средняя величина нагрузки — это тоже самое, что отображается в top и uptime. Для N-ядерных систем, средняя нагрузка в N.0 даст 100% нагрузку. Другое полезное правило установить X.Y=N*0.9, что ограничит нагрузку на 90%, что тем самым сохранит отзывчивость системы.

Заметка
Когда MAKEOPTS="-jN" используется вместе с EMERGE_DEFAULT_OPTS="--jobs K --load-average X.Y" число возможно создаваемых задач может увеличится до N*K. Поэтому обе переменные должны быть заданы с учетом друг друга, так как вместе они создают K задач, каждая из которых может создать N задач make.

Эти две настройки позволяют наиболее подходящим образом использовать параметры --jobs, в случае длительной компиляции программ с большим количеством файлов исходного кода. Они также могут привести к ошибкам emerge в некоторых случаях, так что используйте их с осторожностью и будьте готовы закомментировать их, если возникают проблемы.

See also