EMERGE¶
НАЗВАНИЕ¶
emerge - консольный интерфейс к системе портежей
СИНТАКСИС¶
emerge
[опции] [действие] [ебилд | архив tbz2 | файл | @сет | атом] ...
emerge
--sync | --version
emerge
--info [атом]
emerge
--search строка
emerge
--help [--verbose]
ОПИСАНИЕ¶
emerge - это полный интерфейс командной строки к системе портежей. Он используется прежде всего для установки пакетов, причем emerge умеет автоматически обрабатывать любые зависимости пакета. emerge может также обновлять дерево портежей, делая новые и обновленные пакеты доступными для установки. Утилита обеспечивает беспроблемное обновление уже установленных пакетов до новых версий. Она работает как с исходными кодами, так и с бинарными пакетами, а также может быть использована для создания собственных бинарных пакетов для дальнейшего распространения.
ЕБИЛДЫ, АРХИВЫ, СЕТЫ И АТОМЫ¶
Основное назначение emerge - установка пакетов. Пакеты можно задать одним из следующих способов: как атом, как сет, как установленный файл, как ебилд или как архив tbz2.
ебилд
Ебилд должен быть задан, как минимум, в виде допустимого имени каталога пакетов Portage, как без указания версии или категории, например, portage или python, так и с добавлением таковых, например, sys-apps/portage или =python-2.2.1-r2. emerge игнорирует завершающую косую черту, поэтому можно использовать автоматическое завершение имени файла. Значением ебилда может быть и фактическое имя файла, например, /usr/portage/app-admin/python/python-2.2.1-r2.ebuild. ВНИМАНИЕ: на данный момент синтаксис emerge /путь/к/ебилду не работает и не может быть использован.
архив tbz2
Архив tbz2 должен быть корректным файлом с расширением .tbz2, созданным с помощью команды ebuild <пакет>-<версия>.ebuild package, emerge --buildpkg [категория/]<пакет> или quickpkg /var/db/pkg/<категория>/<пакет>.
файл
Файл должен быть файлом или каталогом, установленным одним или несколькими пакетами. Если не используется абсолютный путь, файл в аргументе следует задавать с префиксом "./" или "../". Для каталогов, которые принадлежат нескольким пакетам, должны быть выбраны все эти пакеты. Если вы хотите запросить владельца одного или нескольких файлов или каталогов, см. команду portageq(1).
сет
Сет - удобный способ обозначить большую группу пакетов.В настоящее время поддерживаются три сета пакетов, которые доступны всегда: selected, system и world. Сет selected содержит определенные пользователем world-пакеты, которые перечислены в файле /var/lib/portage/world, и вложенные сеты, которые могут быть указаны в файле /var/lib/portage/world_sets. Сет system содержит набор пакетов, которые считаются необходимыми для правильной работы системы. Сет world включает пакеты как из selected, так и из system. [Подробнее см. ниже в разделе ФАЙЛЫ.] В зависимости от конфигурации системы, могут быть доступны и другие сеты. Конфигурация сетов по умолчанию находится в каталоге /usr/share/portage/config/sets. Обратите внимание, что сет в аргументе emerge используется, как правило, при выполнении действия --update. Для корректного распознавания сеты должны иметь префикс @. Если вы хотите просмотреть список доступных сетов, используйте действие --list-sets.
атом
Атом описывает ограничения на пакет, который необходимо установить. Подробнее о синтаксисе атомов см. ebuild(5). Например, >=dev-lang/python-2.2.1-r2 соответствует последней доступной версии Python не ниже 2.2.1-r2. Аналогично, <dev-lang/python-2.0 соответствует последней доступной версии Python ниже 2.0. Учтите, что во многих командных интерпретаторах такие символы как '<' и '=' требуют маскировки; чтобы избежать проблем, атом следует заключать в одинарные или двойные кавычки.
ДЕЙСТВИЯ¶
Нет действия
Если не указано никакого действия, подразумевается, что пакеты в аргументе будут установлены, а все их зависимости - удовлетворены. В качестве аргументов могут указываться атомы, сеты, файлы, ебилды или архивы tbz2. Заметьте, что для установки архива tbz2 необходимо использовать также опцию --usepkg. В конце установки пакеты будут добавлены в файл world - и, следовательно, будут учитываться при последующих обновлениях.
--check-news
Проверяет все репозитории на наличие непрочитанных новостей GLEP 42 и подсчитывает найденные. См.
--clean
Очищает систему: просматривает установленные пакеты и удаляет устаревшие. Будут удалены все пакеты, кроме последней установленной версии в каждом слоте. Команда не удаляет пакеты, существующие в единственном экземпляре. Примечание: Под последней установленной версией подразумевается версия, которая была установлена последней, а не обязательно последняя выпущенная разработчиками.
--config
Запускает специфичные для пакета действия, требующие выполнения после завершения процесса установки. Как правило, это редактирование файлов конфигурации и установка других пользовательских настроек.
--depclean (-c)
Чистит систему, удаляя все пакеты, не связанные с установленными. Утилита работает следующим образом: на основе сета @world генерируется полное дерево зависимостей, которое затем сопоставляется с установленными пакетами. Если пакет установлен, но его нет в дереве зависимостей, он будет удален. Для изменения поведения depclean в отношении зависимостей времени выполнения, не являющихся необходимыми, используйте --with-bdeps. Утилита не удаляет пакеты, содержащиеся в сете world; при необходимости вы можете вручную добавлять пакеты в этот сет с помощью команды emerge --noreplace <атом>. Кроме того, в целях предосторожности depclean не пытается удалять пакеты до тех пор, пока не будут удовлетворены все необходимые зависимости. Поэтому перед выполнением depclean часто бывает необходимо запустить команду emerge --update --newuse --deep @world. Обратите также внимание, что использование данной утилиты может привести к тому, что пакеты, связанные с удаленными, перестанут работать, особенно если не включена опция --depclean-lib-check. Для обнаружения некорректных ссылок рекомендуется использовать утилиту revdep-rebuild(1).
ВНИМАНИЕ: Новичкам рекомендуется выполнять данное действие с ключом --pretend для предварительного просмотра списка пакетов на удаление. Изучение этого списка позволит избежать очевидных ошибок. Заметьте, что пакеты, перечисленные в файле package.provided (см. portage(5)), могут быть удалены при использовании depclean - даже если они являются частью сета world.
Depclean работает аналогично --unmerge, но с той разницей, что учитывает зависимости. С одним или несколькими атомами в аргументах утилита удалит все сопоставленные этим атомам пакеты, не имеющие обратных зависимостей. Для вывода списка обратных завимостей выполните --depclean с ключом с --verbose.
--deselect [ y | n ]
Удаляет атомы и/или сеты из файла world. Это действие подразумевается при выполнении удаления, а именно команд --depclean, --prune и --unmerge. Используйте значение --deselect=n, если вы не хотите, чтобы одновременно с удалением атом был исключен из файла world.
--help (-h)
Выводит справочную информацию для emerge. Более конкретную информацию можно получить, добавив один из перечисленных выше аргументов. Внутренняя документация emerge обновляется чаще, чем это руководство; обращайтесь к ней, если у вас возникли проблемы, которые не удалось разрешить с помощью этой man-страницы.
--info
Выдает информацию для включения в отчеты об ошибках. Эта информация помогает разработчикам при решении проблем, о которых вы сообщаете, поэтому обязательно включайте ее в высылаемую заявку. Используя ключ --verbose, можно получить расширенную информацию.
--list-sets
Выводит список доступных сетов.
--metadata
Переносит кэш метаданных из ${PORTDIR}/metadata/cache/ в /var/cache/edb/dep/ - как это происходит обычно в конце обновления с помощью rsync при вызове emerge --sync. Этот процесс заполняет кэш базы данных, используемый портежем для предварительного поиска данных пакета. Кэш оверлеев, перечисленных в PORTDIR_OVERLAY, не заполняется; для генерации кэша оверлеев используйте ключ --regen В версиях портежа 2.1.5 и выше ключ --metadata не нужен, если только пользователь не включил FEATURES="metadata-transfer" в make.conf(5).
--prune (-P)
Удаляет из системы все версии пакетов, кроме последних установленных релизов. Для отображения обратных зависимостей используйте с --prune ключ --verbose. Чтобы игнорировать все зависимости, используйте ключ --nodeps. ВНИМАНИЕ: Это действие может привести к удалению пакетов из файла world! Внимательно проверяйте вывод команды emerge --depclean при следующем запуске! Во избежание проблем используйте --depclean.
--regen
Используется Portage для проверки и обновления кэша зависимостей всех ебилдов в дереве портежей. Кэш позволяет ускорить поиск и построение дерева зависимостей. Эта команда не рекомендуется, если вы используете rsync, поскольку rsync обновляет кэш на основе кэша со стороны сервера. Если вы не знаете, чем отличается пользователь rsync от остальных пользователей, то, вероятнее всего, вы обновляетесь с помощью rsync :) В этом случае для обновления кэша лучше всего выполнить emerge --sync, чтобы обновить кеш. После обновления портежей пользователям rsync целесообразно запустить emerge --metadata*для перестройки кэша, что и делает в конце выполнения команды синхронизации Portage. Для задания параллельного выполнения *--regen, используйте опции --jobs и --load-average. Если вам необходимо создавать и распространять кэш для других пользователей, используйте egencache(1).
--resume (-r)
Возобновляет последнюю прерванную установку. Обратите внимание, что, если эта попытка окажется неудачной, программа просто выдаст сообщение об ошибке. Если установки для возобновления нет, portage закончит работу, предварительно сообщив об успешном завершении. Список пакетов, которые не удалось установить, к которому обращается программа, будет сохраняться до тех пор, пока все входящие в него пакеты не будут установлены, либо до замены его новым аналогичным списком. История возврата способна хранить два списка, благодаря чему после успешного исполнения последнего списка можно выполнить действие --повторно, чтобы вернуться ко второму, более раннему списку.
--search (-s)
Ищет совпадения переданной строки в дереве портежей. По умолчанию emerge использует простой, нечувствительный к регистру поиск, но вы можете включить поиск по регулярному выражению, поставив в начале строки поиска % . Например, emerge --search "%^kde" ищет любой пакет, имя которого начинается с "kde"; emerge --search "%gcc$" ищет все пакеты, имена которых заканчиваются на "gcc"; emerge --search "office" ищет пакеты, в имени которых содержится "office". Если вы хотите включить категорию в строку поиска, вставьте в начале : *
^dev-java.*jdk". Если необходимо включить в поиск описание пакетов, используйте опцию *--searchdesc.
--searchdesc (-S)
Сверяет шаблон не только с именем пакета, но и с описание. Будьте внимательны, так как описания также сравниваются по регулярным выражениям.
--sync
Запускает обновление дерева портежей, расположенного в каталоге, на который указывает переменная PORTDIR (по умолчанию это /usr/portage).
В переменной SYNC указан удаленный URI, с которого будет производиться синхронизация. Переменная PORTAGE_SYNC_STALE определяет вид предупреждений, выводимых в случае, когда команда emerge --sync давно не выполнялась.
ВНИМАНИЕ: Команда emerge --sync изменит и/или удалит файлы в каталоге, на который указывает переменная PORTDIR (по умолчанию это /usr/portage). Более подробную информацию см. раздел о PORTDIR в man-руководстве make.conf(5).
ПРИМЕЧАНИЕ: Вы можете выкачать всё дерево портежей в виде архива - используйте для этого утилиту emerge-webrsync. Это значительно быстрее, чем emerge --sync, и потому удобно для первой синхронизации.
--unmerge (-C)
ВНИМАНИЕ: Это действие может привести к удалению важных пакетов! Удаляет все совпавшие с запросом пакеты. Зависимости не проверяются, поэтому в результате могут оказаться удалены необходимые для функционирования системы пакетов. Аргументами могут быть атомы либо ебилды. Emerge поддерживает действия, которые аналогичны --unmerge, но учитывают зависимости: это --depclean и --prune.
--version (-V)
Выводит номер версии утилиты emerge.
ОПЦИИ¶
--accept-properties=ACCEPT_PROPERTIES
Эта опция имеет временный приоритет над значением переменной ACCEPT_PROPERTIES. ACCEPT_PROPERTIES действует по нарастанию - новые настройки прикрепляются к существующему значению, хранящемуся в вашей конфигурации. Для отмены существующей конфигурации и определения нового значения с нуля можно использовать специальный знак -*. Подробнее о переменной ACCEPT_PROPERTIES см. в разделе МАСКИРОВКА ПАКЕТОВ настоящего руководства и man-страницу make.conf(5). Примером типичного применения этой опции может быть --accept-properties=-interactive для временной маскировки интерактивных пакетов. Если используются настройки по умолчанию, в результате ACCEPT_PROPERTIES примет значение "* -interactive".
--alphabetical
При выводе USE и других флагов сводит включенные и выключенные флаги в один список и сортирует их по алфавиту.
--ask [ y | n ] (сокращенно -a)
Прежде чем выполнять действие, отображает предполагаемый результат (информация о сервере в случае действия --sync, вывод с помощью --pretend пакетов, которые будут установлены, и т.д.), а затем спрашивает, продолжить действие или прервать. Использование --ask@ более эффективно, чем --pretend с последующим вызовом той же команды без --pretend, т.к. вычисление зависимостей произойдет всего один раз. ПРЕДУПРЕЖДЕНИЕ: Если в командной строке был нажат "Enter" (без дополнительного ввода), он будет интерпретирован как одобрение первого варианта. Обратите внимание, что буфер ввода не очищается перед запросом на ввод, поэтому случайное нажатие клавиши "Enter" до приглашения для ввода будет воспринято как сделанный выбор!
Выводит сообщение о предстоящих действиях перед началом их выполнения (информация о сервере для --sync, вывод --pretend для установки и т.п.), после чего предлагает пользователю решить, следует ли продолжить или прервать выполнение программы. Опция --ask предпочтительнее, чем --pretend с последующим вызовом той же команды без опции --pretend, поскольку при использовании --ask зависимости будут вычисляться только один раз. ВНИМАНИЕ: если нажать клавишу "Enter" при выборе (и больше ничего не нажимать), программа интерпретирует это как выбор первого пункта. Обратите внимание, что буфер ввода не очищается перед новым запросом, поэтому случайное нажатие "Enter" в любой момент перед запросом ввода также будет воспринято как выбор! Используйте опцию --ask-enter-invalid, если вы хотите, чтобы однократное нажатие клавиши "Enter" интепретировалось как ошибка ввода.
--ask-enter-invalid
При использовании совместно с опцией --ask делает так, что однократное нажатие клавиши "Enter" воспринимается программой как ошибка ввода. Это позволяет избежать автоматического выбора первого пункта из списка в случае случайного нажатия. Эту опцию следует прописать в файле make.conf(5), в переменной EMERGE_DEFAULT_OPTS.
--autounmask [ y | n ]
Автоматически размаскирует пакеты и сгенерирует необходимые для удовлетворения зависимостей настройки в package.use. Данная опция включена по умолчанию.Если необходимо изменить конфигурацию, требуемые изменения будут выведены вслед за списком пакетов, назначенных на установку, после чего emerge сразу же прервет работу. Если предлагаемые изменения конфигурации вас удовлетворяют, вам следует скопировать и вставить их в предопределенный конфигурационный файл(файлы) либо включить опцию --autounmask-write. Эту опцию можно отключить глобально, изменив переменную EMERGE_DEFAULT_OPTS в файле make.conf(5).
--autounmask-unrestricted-atoms [ y | n ]
Если включен параметр --autounmask, будут записываться все изменения ключевых слов и масок с использованием оператора =. С этой опцией можно в любой подходящий момент использовать операторы >=. При изменении USE-флагов и лицензии всегда будут учитываться последние установленные настройки.
--autounmask-keep-masks [ y | n ]
Если включен параметр --, файлы package.unmask и **.keyword не будут изменены. Результатом этого могут стать неудовлетворенные зависимости, если не разрешить их другим способом.
--autounmask-write [ y | n ]
Если включен параметр --, изменения записываются в конфигурационные файлы, с учетом переменной CONFIG_PROTECT и опции --ask. Если соответствующий элемент package.* - файл, изменения будут записаны в этот файл; если это каталог, изменения будут сохранены в последний по списку файл. Это сделано для того, чтобы последние изменения всегда имели приоритет перед более ранними.
--backtrack=COUNT
Целое значение, обозначает количество обращений к системе контроля ошибок, в случае если определение зависимостей завершается ошибкой по причине конфликта или неразрешенной зависимости (значение по умолчанию: 10).
--binpkg-respect-use [ y | n ]
Указывает emerge игнорировать бинарные пакеты, если их USE-флаги не соответствуют текущей конфигурации(по умолчанию: n).
--buildpkg [ y | n ] (сокращенно -b)
Указывает emerge собирать бинарные пакеты для всех обработанных ебилдов, а не только разворачивать. Эта опция удобна для мейнтейнеров и для администраторов нескольких систем под Gentoo Linux (собираете один раз, а в дальнейшем разворачиваете везде из tbz2-архива), а также для восстановления системы. Пакет будет создан в каталоге PKGDIR (см. make.conf(5)). Альтернативой для использования готовых бинарных пакетов может стать использование утилиты quickpkg(1), которая позволяет создать архив tbz2 на основе файлов из вашей системы.
--buildpkg-exclude АТОМЫ
Аргументом является список, через пробел, атомов пакетов, назначенных для сборки. Эта опция перезапишет другие доступные способы выбора бинарных пакетов для установки.
--buildpkgonly (сокращенно -B)
Создает бинарные пакеты для всех обработанных ебилдов без установки - при условии, что все зависимости времени построения уже установлены в системе.
--changed-use
Это алиас опции --reinstall=changed-use.
--changelog (сокращенно -l)
Используйте эту опцию в связке с --pretend. Будут выведены записи ChangeLog для всех пакетов, подлежащих обновлению.
--color < y | n >
Включает или выключает цветной вывод. Эта опция имеет приоритет над значением переменной NOCOLOR (см. make.conf(5)) и может использоваться также для принудительного цветного вывода, когда стандартный вывод - не терминал (по умолчанию цветной вывод отключен, если стандартный вывод идет не на терминал).
--columns
При использовании в связке с --pretend название пакета, его новая и прежняя версии отображаются в выровненном формате, удобном для копирования.
--complete-graph [ y | n ]
Указывает emerge учитывать глубокие зависимости пакетов из сета world. С этой опцией emerge будет остановлен, если выполняемая операция будет нарушать зависимости, входящие в граф. Наравне с опцией --deep, опция --complete-graph значительно увеличивает время, затрачиваемое на нахождение зависимостей. Однако заметьте, что, в отличие от опции --deep, --complete-graph не принуждает к обновлению другие пакеты, которые были бы обновлены, будь эта опция отключена.
--complete-graph-if-new-ver < y | n >
Включает опцию --complete-graph, если предполагается изменение версии устанавленного пакета (обновление или откат). По умолчанию включено.
--config-root=DIR
Устанавливает переменную окружения PORTAGE_CONFIGROOT.
--debug (сокращенно -d)
Указывает emerge запустить команду сборки в режиме отладки. В этом режиме окружение сборки bash будет запущено с опцией -x, которая выдает подробную отладочную информация на стандартный вывод. Будет включена и другая обширная информация (главным образом сообщения о разрешении зависимостей).
--deep [DEPTH] (сокращенно -D)
Этот флаг принудительно указывает emerge считывать полное дерево зависимостей пакетов вместо проверки прямых зависимостей. Например, это позволяет обнаружить обновления библиотек, не связанные напрямую с пакетом. См. также --with-bdeps для изменения поведения в отношении нестрогих зависимостей времени построения.
--depclean-lib-check [ y | n ]
Обрабатывает библиотечные зависимости в ходе выполнения действий --depclean и --prune. Эта опция включена по умолчанию, но будет игнорироваться, если в make.conf(5) включено FEATURES="preserve-libs", так как в этом случае все библиотеки просто будут сохранены.
--dynamic-deps < y | n >
При определении зависимостей заменяет зависимости установленных пакетов зависимостями соответствующих ебилдов из репозиториев исходных кодов. В результате зависимости установленных пакетов динамически меняются вслед за изменением зависимостей ебилдов. Эта опция включена по умолчанию.
ВНИМАНИЕ: Если вы хотите отключить опцию --dynamic-deps, для оптимального результата, возможно, сначала понадобится запустить fixpackages. Команда fixpackages выполняет две различных операции, которые могут быть вызваны и по отдельности: `emaint --fix moveinst` а `emaint --fix movebin` (см. emaint(1)).
--emptytree (сокращенно -e)
Переустанавливает все атомы с их глубокими зависимостями, как если бы ни одного пакета не было установлено. Сначале рекомендуется запустить эту команду с ключом --pretend, дабы убедиться, что она отработает так, как вы ожидаете.
--exclude **
Список пакетов или атомов, через пробел. Ебилды и бинарные пакеты, совпадающие с запросом, установлены не будут.
--fail-clean [ y | n ]
Удаляет временные файлы, оставшиеся после ошибки сборки. Это особенно удобно, если у вас PORTAGE_TMPDIR на файловой системе tmpfs. Если данная опция включена, вероятно, полезным будет включение и PORT_LOGDIR (см. make.conf(5)), чтобы сохранить журнал сборки.
--fetchonly (сокращенно -f)
Вместо сборки пакета будут только загружены файлы для всех пакетов (по значениям SRC_URI, определяемым настройками USE-флагов).
--fetch-all-uri (сокращенно -F)
Не будет собирать пакеты, а только загрузит все файлы пакетов (по списку в SRC_URI, независимо от USE-флагов).
--getbinpkg [ y | n ] (сокращенно -g)
Используя сервер и местонахождение, определенные значением переменной PORTAGE_BINHOST (см. make.conf(5)), portage соберет информацию о каждом обнаруженном бинарном пакете и на ее основе выстроит список зависимостей. Эта опция подразумевает ключ -k. (Чтобы установить только бинарные пакеты, используйте комбинацию опций -gK.)
--getbinpkgonly [ y | n ] (сокращенно -G)
Эта опция аналогична описанной выше -g, за исключением того, что бинарные пакеты с удаленного сервера предпочитаются локальным, если они не идентичны.
--ignore-default-opts
Значение переменной EMERGE_DEFAULT_OPTS (см. make.conf(5)) будет игнорироваться.
-j [JOBS], --jobs[=JOBS]
Указывает, сколько пакетов будет собираться одновременно. Если задать эту опцию без аргумента, одновременно может выполняться неограниченное количество заданий. Обратите также внимание на родственную опцию --load-average. Заметьте, что интерактивные пакеты принудительно выставляют значение --jobs=1. Этого можно временно избежать, указав --accept-properties=-interactive.
--keep-going [ y | n ]
Продолжает установку после ошибки настолько, насколько это возможно. При возникновении ошибки зависимости для остальных пакетов автоматически пересчитываются, все пакеты с неудовлетворенными зависимостями автоматически исключаются. См. также родственную опцию --skipfirst.
--load-average=LOAD
При выставленной опции новая сборка не будет начата, пока не завершится предыдущая установка, а среднее число процессов на исполнение не ниже LOAD (число с плавающей точкой). Данную опцию рекомендуется использовать в связке с --jobs, чтобы избежать чрезмерной нагрузки. Информацию об аналогичных опциях, настраиваемых в make.conf(5) через переменную MAKEOPTS, см. в документации по make(1).
--misspell-suggestions < y | n >
Включает или отключает подсказку в случае ошибки написания. По умолчанию, если пакет, который вы пытаетесь установить, не существует, emerge выводит перечень пакетов с похожими именами. Для отмены этой стандартной опции можно использовать переменную EMERGE_DEFAULT_OPTS.
--newuse (сокращенно -N)
Указывает emerge включить в список на установку уже установленные пакеты, в которых с момента предыдущей компиляции изменились USE-флаги. Подразумевает также включение опции --selective. Под изменением флагов может иметься в виду, что
К пакету был добавлен USE-флаг. USE-флаг был удален из пакета. USE-флаг был включен для пакета. USE-флаг был выключен для пакета.
USE-флаги могут быть включены/выключены вашим профилем, а также через в файле package.use и переменную окружения USE. Если вы хотите пропустить пересборку пакетов, для которых отключенные флаги были добавлены или удалены в IUSE, см. родственную опцию --reinstall=changed-use.
--noconfmem
Указывает portage не принимать во внимание записи, указывающие на то, что файлы в каталоге CONFIG_PROTECT уже были установлены. Обычно они устанавливаются лишь единожды, чтобы пользователь не редактировал один и тот же конфигурационный файл несколько раз. С этим ключом файлы будут устанавливаться всегда.
--nodeps (сокращенно -O)
Устанавливает указанные пакеты без их зависимостей. Учтите, что без необходимых зависимостей сборка может завершиться ошибкой.
--noreplace (сокращенно -n)
Пропускает пакеты, указанные в командной строке, если они уже были установлены. Без этой опции любые пакеты, ебилды или зависимости, указанные вами в качестве аргументов действия, будут установлены даже в том случае, если они уже присутствуют в системе. Заметьте, что зависимости по умолчанию не переустанавливаются.
--nospinner
Отключает циклический счетчик в текущей сессии. Счетчик активен, если команда подана с терминала; данная опция отключает его в любом случае.
--usepkg-exclude АТОМЫ
Список пакетов или атомов слотов, через пробел. Emerge проигнорирует бинарные пакеты, совпадающие с запросом.
--rebuild-exclude АТОМЫ
Список пакетов или атомов слотов, через пробел. Совпадающие с запросом пакеты не будут пересобраны.
--rebuild-ignore АТОМЫ
Список пакетов или атомов слотов, через пробел. Зависимости пакетов, совпадающих с запросом, не будут пересобраны.
--oneshot (сокращенно -1)
Обычная установка, но пакеты не будут добавлены в файл world и, следовательно, не будут в дальнейшем обновляться.
--onlydeps (сокращенно -o)
Установка (или симуляция установки) не самих указанных пакетов, а только их зависимостей.
--package-moves [ y | n ]
При необходимости перемещает пакеты. Включено по умолчанию. ВНИМАНИЕ: В общем случае эта опция должна оставаться включенной. Не выключайте ее, если вы не уверены, что это необходимо.
--pretend (сокращенно -p)
Не выполняет установку, а лишь отображает пакеты которые были бы установлены без --pretend. Использование данной опции настоятельно рекомендуется перед установкой незнакомых пакетов. Расшифровка содержимого вывода:
U | обновление (установка новой версии) |
D | откат (рекомендуемая, "лучшая" версия ниже установленной) |
R | замена (переустановка текущей версии)) |
F | загрузка ограничена (данные необходимо загрузить вручную) |
f | загрузка ограничена (данные уже загружены) |
I | интерактивный режим (требует пользовательского ввода) |
B | блокируется другим пакетом (неразрешенный конфликт) |
b | блокируется другим пакетом (автоматически разрешенный конфликт) |
--quiet [ y | n ] (сокращенно -q)
Использование этой опции может иметь различный эффект, но в общем случае сократится объем сообщений portage.
--quiet-build [ y | n ]
Перенаправляет весь вывод сборки в журнал, не отображая его в консоли. Если ошибку при сборке выдает только один пакет, в стандартном выводе автоматически будет показан журнал сборки. Если ошибка не одна (при использовании таких опций как --keep-going или --jobs) содержимое соответствующих журналов не будет выводиться; вместо этого вы увидите пути доступа к ним вместе с сообщениями об аварийном завершении. Это стандартная опция. Для отмены --quiet-build по умолчанию, установите значение --quiet-build=n в переменной EMERGE_DEFAULT_OPTS в файле make.conf(5).
--quiet-unmerge-warn
Отключает предупреждение, показываемое перед началом --unmerge. Эта опция настраивается через переменную EMERGE_DEFAULT_OPTS в файле make.conf(5).
--rebuild-if-new-rev [ y | n ]
Если зависимости времени сборки компилируются из исходных кодов и зависимость еще не установлена в той же версии и ревизии, пакет будет пересобран.
--rebuild-if-new-ver [ y | n ]
Если зависимости времени сборки компилируются из исходных кодов и зависимость еще не установлена в той же версии, пакет будет пересобран. Ревизии при этом игнорируются.
--rebuild-if-unbuilt [ y | n ]
Если зависимости времени сборки компилируются из исходных кодов, пакеты будут пересобраны.
--rebuilt-binaries [ y | n ]
Заменяет установленные пакеты пересобранными бинарными. Для выявления пересобранных пакетов анализируются метаданные пакетов BUILD_TIME. Данная опция включается по умолчанию при использовании бинарных пакетов (--usepkgonly или --getbinpkgonly) в связке с опциями --update и --deep.
--rebuilt-binaries-timestamp=TIMESTAMP
Изменяет поведение emerge только при выставленной опции --rebuilt-binaries. Последняя будет обрабатывать лишь те бинарные файлы, у которых значение BUILD_TIME больше, чем TIMESTAMP и чем соответствующая величина установленного пакета.
--reinstall changed-use
Будут переустановлены те уже установленные пакеты, USE-флаги которых изменились с момента установки. В отличие от --newuse, данная опция не вызывает переустановку, когда добавляются/удаляются флаги, которых пользователь не включал.
--reinstall-atoms АТОМЫ
Список пакетов или атомов слотов, через пробел. Emerge обработает пакеты, соответствующие запросу, так, как если бы они не были установлены, и переустановит их, если этого необходимо.
--root=DIR
Устанавливает переменную окружения ROOT.
--root-deps[=rdeps]
Если аргумент не задан, зависимости времени сборки пакетов для ROOT будут установлены не в корневой каталог, а в каталог ROOT. Если задан аргумент rdeps, все зависимости времени сборки пакетов для ROOT будут проигнорированы. Эта опция имеет смысл только в том случае, если используется совместно с ROOT, ее не следует использовать в обычных случаях. Для поддерживаемых в настоящее время значений EAPI зависимости времени построения определены в переменной DEPEND. В новых версиях EAPI, с добавлением новых расширений, данная опция может работать иначе.
--select [ y | n ]
Добавляет указанные пакеты к сету world (опция, обратная --oneshot). Это удобно в том случае, если вы хотите сделать поведение --oneshot стандартным через переменную EMERGE_DEFAULT_OPTS.
--selective [ y | n ]
Действует аналогично опции --noreplace. Некоторые другие опции, в частности, --update, неявно подразумевают --selective. Если вам необходимо принудительно отключить --selective, независимо от таких опций как --update, установите --selective=n.
--skipfirst
Эта опция используется только в связке с --resume. Она исключает из списка пакетов, которые будут установлены при возобновлении последнего действия emerge, первый пакет. Для оставшихся пакетов пересчитываются зависимости; все пакеты, имеющие замаскированные или неудовлетворенные зависимости, автоматически исключаются. См. также похожую опцию --keep-going.
--tree (сокращенно -t)
Показывает дерево зависимостей для выбранной цели, используя отступы. Эта опция полезна только в сочетании с --emptytree или --update и --deep.
--unordered-display
По умолчанию список пакетов на установку сортируется в том порядке, в каком они будут обрабатываться. Если в связке с данной опцией используется --tree, это ограничение снимается, и дерево зависимостей воспринимается легче.
--update (сокращенно -u)
Обновляет пакеты до версии, маркированной как лучшая; учтите, что это не обязательно последняя выпущенная версия, поскольку отдельные версии могут маскироваться для тестирования и дальнейшей разработки. Переданные в командной строке пакетные атомы являются "жадными": неточные атомы могут совпадать с несколькими установленными версиями размеченных пакетов.
--use-ebuild-visibility [ y | n ]
Использует метаданные несобранных ебилдов для проверки на видимость готовых пакетов.
--useoldpkg-atoms АТОМЫ
Список пакетов или атомов слотов, через пробел. Бинарные пакеты, удовлетворяющие запросу, будут предпочитаться хотя и более новым, но не прекомпилированным пакетам.
--usepkg [ y | n ] (сокращенно -k)
Указывает emerge использовать бинарные пакеты (из каталога $PKGDIR), если они доступны, тем самым по возможности избегая продолжительных компиляций. Эта опция полезна при установке с CD: можно выполнить export PKGDIR=/mnt/cdrom/packages, а затем использовать --usepkg, чтобы для удовлетворения зависимостей она "вытягивала" пакеты с диска.
--usepkgonly [ y | n ] (сокращенно -K)
Указывает emerge использовать только бинарные пакеты (из каталога $PKGDIR). Все они должны быть доступны на момент проверки зависимостей - в противном случае emerge просто прекратит работу. Поскольку Portage при определении зависимостей не обращается к каталогу $PORTDIR, любая информация о маскировке будет проигнорирована.
--verbose (сокращенно -v)
Запускает emerge в режиме подробного вывода. В настоящее время использование этого ключа приводит к тому, что в случае возникновения ошибок будут выводиться сообщения GNU info, а также, при симулировании установки, будут отображаться последние USE-флаги каждого пакета. Ниже приводится расшифровка суффиксов, добавляемых к USE-флагам для обозначения их состояния:
Символ | Расположение | Значение |
- | префикс | флаг отсутствует (отключен или удален) |
* | суффикс | переключение состояния включен/отключен |
% | суффикс | вновь добавлен или убран |
() | окружает | выставляется принудительно, замаскирован или удален |
--with-bdeps < y | n >
При определении зависимостей "вытягивает" нестрогие зависимости времени сборки. По умолчанию для действий по установке этот ключ стоит на n - иначе говоря, такие зависимости не будут установлены, а значение y применяется с действием --depclean - иными словами, такие зависимости будут удалены. Настраивается в переменной EMERGE_DEFAULT_OPTS (см. make.conf(5)), но может быть переопределено в командной строке.
ПАРАМЕТРЫ ОКРУЖЕНИЯ¶
ROOT = [путь]
Используйте ROOT, чтобы назначить корневую файловую систему для установки пакетов или ебилдов. Данная переменная настраивается через опцию --root или в файле make.conf(5) (эти настройки могут быть переопределены в командной строке).
По умолчанию это корневой каталог, /.
PORTAGE_CONFIGROOT = [путь]
Используйте PORTAGE_CONFIGROOT, чтобы указать расположение различных файлов конфигурации portage (подробный перечень конфигурационных файлов см. в разделе ФАЙЛЫ). Эта переменная настривается через опцию --config-root.
По умолчанию это корневой каталог.
ВЫВОД¶
На первых порах при использовании emerge с опциями --pretend и --verbose вывод программы может показаться сложным для понимания. Ниже приведены примеры типичных выводов с пояснениями.
[blocks B ] app-text/dos2unix ("app-text/dos2unix" is blocking app-text/hd2u-0.8.0)
Пакет dos2unix блокирует установку пакета hd2u. При блокировании два пакета перекрываются по файлам или могут вызвать те или иные повреждения в системе. Однако обычно включать одновременно блокирующие друг друга пакеты не нужно, поскольку они, как правило обеспечивают одинаковые возможности.
[ebuild N ] app-games/qstat-25c
Пакет qstat - новый в вашей системе и будет установлен с помощью emerge впервые.
[ebuild NS ] dev-libs/glib-2.4.7
У вас уже установлена одна из версий пакета glib, но для установки доступна более новая версия в другом слоте.
[ebuild R ] sys-apps/sed-4.0.5
Версия пакета sed 4.0.5 уже была установлена, но при запуске команды portage переустановит пакет (в данном случае sed).
[ebuild F ] media-video/realplayer-8-r6
Пакет realplayer требует, чтобы вы загрузили файлы исходного кода вручную. Если исходники пакета не найдены, при попытке установить его portage прервет работу, сообщив, как загрузить недостающие файлы.
[ebuild f ] media-video/realplayer-8-r6
Файлы пакета realplayer уже загружены.
[ebuild U ] net-fs/samba-2.2.8_pre1 [2.2.7a]
Пакет samba 2.2.7a уже установлен и может быть обновлен до версии 2.2.8_pre1.
[ebuild UD] media-libs/libgd-1.8.4 [2.0.11]
Пакет libgd 2.0.11 уже установлен, но при запуске команды portage понизит его до версии 1.8.4.
Это может произойти в том случае, если более новая версия пакета была замаксирована, поскольку оказалась поврежденной или создает угрозу защите системы, а исправление еще не выпущено.
Другая ситуация, в которой возможен подобный вывод - пакет, который вы пытаетесь установить, для нормальной работы требует более ранней версии какого-либо другого пакета, чем текущая. В приведенном примере библиотека libgd 2.x несовместима с libgd 1.x. Поэтому пакеты, созданные с помощью libgd 1.x, не скомпилируются с версией 2.x и для установки должны быть понижены.
[ebuild U ] sys-devel/distcc-2.16 [2.13-r1] USE="ipv6* -gtk -qt%"
Из приведенного примера видно, что на установку данного пакета влияет переменная USE в make.conf. Включена необязательная поддержка ipv6, отключена поддержка gtk и qt. Астериск, стоящий после флага ipv6, показывает, что при последней установке пакета поддержка ipv6 была отключена. Знак процента вслед за флагом qt говорит о том, что поддержка qt была добавлена к пакету после того, как он был установлен в последний раз. Полную справку по значению символов, используемых с USE, см. выше в разделе об опции --verbose.
*Примечание: Флаги, которые с момента последней установки пакета не изменились, отображаются только при использовании опций --pretend и --verbose. Чтобы отключить вывод информации, используйте опцию --quiet.
[ebuild U *] sys-apps/portage-2.2.0_alpha6 [2.1.9.25]
Установлена версия 2.1.9.25 пакета portage; при вызове команды portage обновится до версии 2.2.0_alpha6. Здесь вы видите символ *, указывающий, что версия 2.2.0_alpha6 замаскирована отсутствующим ключевым словом. Этот тип маскировки отключается с помощью опции --quiet, если не включена опция --verbose. Для обозначения типов маскировки используются следующие символы:
Символ | Тип маскировки |
# | package.mask |
* | отсутствующий |
~ | нестабильный |
ПРИМЕЧАНИЕ: Символ маскировки нестабильного пакета (~) не будет отображаться, если соответствующие ключевые слова уже выставлены глобально с помощью переменной ACCEPT_KEYWORDS.
ПРИМЕЧАНИЯ¶
Практически всегда перед любой попыткой установки или обновления следует выполнять ее же, но с опцией --pretend. Она позволяет увидеть, что именно будет сделано, а также, возможно, выявить блокировку, которую потребуется предварительно разрешить. Это особенно важно для сетов system и world, которые могут вызвать обновление большого количества пакетов, если дерево портежей было существенно изменено. Обычно также имеет смысл использовать опцию --update, которая позволяет игнорировать уже полностью обновленные пакеты, но обновлять при этом все остальные. При установке пакета с отсутствующими в системе зависимостями, если эти зависимости не указаны явно в списке параметров, они не будут добавляться в файл world. Если необходимо внести зависимости в файл world для последующих обновлений, убедитесь, что указали их явно в качестве параметров emerge. В командной строке можно указывать USE-переменные, переопределяющие значения, указанные в стандартных местах, что позволяет избежать ряда нежелательных зависимостей. USE-флаги, заданные в командной строке, НЕ запоминаются. Например, команда env USE="-X -gnome" emerge mc установит пакет mc с указанными настройками USE (на интерпретаторах, совместимых с bash, env можно опустить). Если необходимо сделать настройки USE постоянными, следует поместить их в каталог /etc/portage/package.use. Если команда emerge --update system или emerge --update world при выполнении выдает ошибку, возможно, что какой-то ебилд использует новую возможность, не поддерживаемую в данной версии emerge. В этом случае выполните emerge --update portage, чтобы обновить portage до последней версии и обеспечить поддержку любого нового функционала.
МАСКИРОВКА ПАКЕТОВ¶
ПРИМЕЧАНИЕ: С осторожностью используйте пакеты, находящиеся в стадии разработки. Разрешение проблем и ошибок, возникающих в результате использования замаскированных пакетов, тратит впустую время Gentoo-разработчика. Подумайте заранее, сможете ли вы справиться с возможными проблемами. Маски в Portage обеспечивают несколько функций: они позволяют задать период тестирования, в течение которого пакеты могут использоваться в live-системах; предотвращают использование пакета, который начал сбоить; позволяют маскировать существующие нерабочие или угрожающие безопасности пакеты. Как размаскировать пакет, описано ниже. Обратите внимание: если передать утилите emerge ебилд, то любая маскировка будет проигнорирована и emerge попытается установить пакет.
Система контроля ошибок
При использовании системы контроля ошибок (backtracking) пакет временно маскируется, чтобы избежать конфликта зависимостей и/или появления неразрешенных зависимостей. Этот тип маскировки обычно сопровождается сообщением о том, что обновление пакета было пропущено во избежание конфликтов зависимостей и/или возникновения неудовлетворенных зависимостей.
package.mask
Файл package.mask используется преимущественно для блокирования пакетов, вызывающих проблемы везде или на некоторых машинах. Он находится в каталоге /usr/portage/profiles.
CHOST
Для управления CHOST используйте переменную ACCEPT_CHOSTS в файле make.conf(5).
EAPI
Переменная EAPI в ebuild(5)-файле используется для маскировки пакетов, которые не поддерживаются текущей версией portage. Пакеты, замаскированные посредством EAPI, могут быть установлены только после обновления portage.
KEYWORDS
Переменная KEYWORDS в ebuild-файле также используется для маскировки пакетов, находящихся на стадии тестирования. Для каждого пакета есть определяющие архитектуру ключевые слова, позволяющие portage определить, с какими системами совместим пакет. Пакеты, компилирующиеся на той или иной архитектуре, но не считающиеся "стабильными", маскируются путем указания тильды (~) перед названием архитектуры. Прежде чем разрешить или запретить установку пакета, замаскированного с помощью KEYWORDS, утилита emerge проверяет значение переменной окружения ACCEPT_KEYWORDS. Чтобы emerge собирал тестовые версии определенных пакетов, следует обновить файл /etc/portage/package.accept_keywords, чтобы эти пакеты вошли в список пакетов, установка которых разрешена несмотря на тестовую версию. Подробнее см. в документации по portage(5).
LICENSE
Переменная LICENSE в ebuild-файле может быть использована для маскировки пакетов исходя из лицензии. Прежде чем разрешить или запретить установку пакета, замаскированного с помощью LICENSE, emerge проверяет значение переменной окружения ACCEPT_LICENSE. Подробнее об ACCEPT_LICENSE см. make.conf(5). Дополнительная информация о файле /etc/portage/package.license содержится в документации по portage(5).
PROPERTIES
Переменная PROPERTIES в ebuild-файле может быть использована для маскировки пакетов исходя из параметров. Прежде чем разрешить или запретить установку пакета, замаскированного с помощью PROPERTIES, emerge проверяет значение переменной окружения ACCEPT_PROPERTIES. Подробнее об ACCEPT_PROPERTIES см. make.conf(5). Подробнее о файле /etc/portage/package.properties можно узнать в руководстве по portage(5). Чтобы временно переопределить значение ACCEPT_PROPERTIES, используйте опцию --accept-properties.
КОНФИГУРАЦИОННЫЕ ФАЙЛЫ¶
В Portage включена специфическая функция - защита конфигурационных файлов (config file protection). Она призвана предотвращать затирание существующих конфигурационных файлов при установке новых пакетов. По умолчанию эта функция включена для /etc и каталогов конфигурации KDE; в дальнейшем к ним могут быть добавлены и другие каталоги. Всякий раз, когда Portage устанавливает файл в "защищенный" каталог, в частности, в /etc, файлы, которые там уже находятся, не будут перезаписаны. Если файл с таким именем уже существует, Portage заменит имя нового файла, например, 'foo', на \'._cfg0000_foo\'.. Если существует и файл \'._cfg0000_foo\', имя нового файла будет \'._cfg0001_foo\', и так далее. Благодаря подобной политике именования новые файлы не затирают существующие, а администратор получает возможность вручную обновить конфигурационные файлы, если это необходимо, и избежать нежелательных изменений, возможных при автоматической замене старого файла новым. Помимо защиты файлов от перезаписи, Portage не удаляет файлов из "защищенного" каталога и при удалении пакета. Хотя в результате каталог может оказаться заполнен большим количеством ненужных файлов, при этом - и это чрезвычайно важно - исключается опасность удаления ценных конфигурационных файлов. Каталоги, на которые распространяется действие защиты, устанавливаются через переменную CONFIG_PROTECT - как правило, она определена в файле make.globals. Чтобы указать подкаталоги-исключения, используйте переменную CONFIG_PROTECT_MASK. Чтобы найти в каталоге /etc файлы, которые необходимо обновить, выполните find /etc -iname \'._cfg????_*\'. Данную настройку можно отменить, выставив CONFIG_PROTECT="-*" в /etc/make.conf. После этого Portage будет обновлять ваши конфигурационные файлы автоматически, ни о чем не спрашивая. В качестве альтернативы можно не отключать защиту конфигурационных файлов, но указать Portage, что следует перезаписать файлы в определенных подкаталогах каталога /etc. Например, если вы хотите, чтобы Portage автоматически обновлял ваши rc-сценарии и конфигурацию wget, но запрашивал ваше согласие на любые другие изменения конфигурационных файлов, в файл /etc/make.conf необходимо добавить строку: CONFIG_PROTECT_MASK="/etc/wget /etc/rc.d". Можно также использовать такие утилиты как dispatch-conf, cfg-update и etc-update: они обеспечивают интерактивную обработку изменений конфигурации, а типовые изменения принимают автоматически.
БАГТРЕКЕР¶
Сообщайте нам обо всех обнаруженных ошибках:
АВТОРЫ¶
- Daniel Robbins <drobbins@gentoo.org>
- Geert Bevin <gbevin@gentoo.org>
- Achim Gottinger <achim@gentoo.org>
- Nicholas Jones <carpaski@gentoo.org>
- Phil Bordelon <phil@thenexusproject.org>
- Mike Frysinger <vapier@gentoo.org>
- Marius Mauch <genone@gentoo.org>
- Jason Stubbs <jstubbs@gentoo.org>
- Brian Harring <ferringb@gmail.com>
- Zac Medico <zmedico@gentoo.org>
ФАЙЛЫ¶
Здесь приведены основные файлы, отвечающие за работу emerge. Если вас интересует полный перечень, обратитесь к man-руководству portage(5).
/usr/share/portage/config/sets/
Содержит стандартные конфигурации сетов.
/var/lib/portage/world
Содержит список всех указанных пользователем пакетов. Вы можете свободно редактировать этот файл, добавляя пакеты, которые необходимо учитывать при обновлении сета world, и удаляя те, которые обновлять при этом не нужно.
/etc/make.conf
Содержит переменные сборки, имеющие приоритет над значениями, указанными в make.globals.
/etc/portage/color.map
Содержит переменные, используемые для пользовательской настройки цветного вывода.
/etc/dispatch-conf.conf
Содержит настройки автоматического обновления/отката конфигурационных файлов.
/etc/make.profile/make.defaults
Содержит специфические для выбранного профиля переменные сборки. Не редактируйте этот файл.
/usr/portage/profiles/use.desc
Содержит основной список USE-флагов с описаниями их функций. Не редактируйте этот файл.
/etc/make.profile/virtuals
Содержит стандартный список пакетов, используемый для разрешения виртуальных зависимостей. Не редактируйте этот файл.
/etc/make.profile/packages
Содержит список пакетов для базовой системы. Сеты system и world обращаются именно к нему. Не редактируйте этот файл.
/usr/share/portage/config/make.globals
Содержит переменные по умолчанию по сборки. Не редактируйте этот файл.
СМ. ТАКЖЕ¶
emerge --help , quickpkg (1), ebuild (1), ebuild (5), make.conf (5), color.map (5), portage (5) Ряд вспомогательных приложений расположены в каталоге /usr/lib/portage/bin, а пакет app-portage/gentoolkit содержит полезные сценарии, в частности, equery (утилита для запроса информации о пакетах).
ПЕРЕВОД¶
- Елена Гаврилова <e.vl.gavrilova@yandex.ru>
Октябрь 2011