EMERGE_DEFAULT_OPTS

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

Other languages:
English • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎日本語

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

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

Параллельная компиляция

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

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

Файл /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, в случае длительной компиляции программ с большим количеством файлов исходного кода. Они также могут привести к ошибкам компиляции в некоторых случаях, так что используйте их с осторожностью и будьте готовы закомментировать их, если возникают проблемы.