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 — это переменная для Portage, которая определяет параметры, которые будут добавлены к параметрам запуска команды emerge.

EMERGE_DEFAULT_OPTS позволяет выполнять параллельно команды emerge с помощью параметров --jobs N и --load-average X.Y. EMERGE_DEFAULT_OPTS используются в 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.

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

См. также