EGENCACHE¶
НАЗВАНИЕ¶
egencache - кэширование метаданных репозитариев ебилдовСИНТАКСИС¶
egencache [опции] --update [ATOM]...
ОПИСАНИЕ¶
Утилита egencache кэширует метаданные репозитариев ебилдов и сохраняет их в каталоге metadata/cache/ внутри самого репозитария, для дальнейшего распространения.
ДЕЙСТВИЯ¶
--update [ATOM] ...
Обновляет каталог metadata/cache/ (метаданные будут генерироваться по необходимости). Если атомы пакетов не указаны, обновлены будут все элементы подряд. Подробнее о синтаксисе атомов пакетов см. ebuild(5).
--update-changelogs
Обновляет ChangeLog-файлы из журналов SCM (поддерживается только для репозитариев на Git).
--update-use-local-desc
Обновляет файл profiles/use.local.desc из metadata.xml.
ОПЦИИ¶
--cache-dir=CACHE_DIR
Определяет расположение промежуточного кэша метаданных, который сохраняется в другом формате, включающем состояние еклассов. О том, почему в этом необходимо, см. в разделе ОШИБКИ.
По умолчанию - /var/cache/edb/dep.
--config-root=PORTAGE_CONFIGROOT
Определяет расположение конфигурационных файлов portage.
По умолчанию это корневой каталог, /.
--ignore-default-opts
При использовании этой опции значения EGENCACHE_DEFAULT_OPTS будут игнорироваться.
--jobs=JOBS
Определяет максимальное число распараллеленных процессов сборки. См. также родственную опцию --load-average.
--load-average=LOAD
Определяет максимальную среднюю загрузку при параллельной сборке.
--portdir=PORTDIR
Переопределяет расположение дерева портежей.
--portdir-overlay=PORTDIR_OVERLAY
Переопределяет переменную PORTDIR_OVERLAY (одновременно необходимо использовать опцию --repo).
--preserve-comments
Сохраняет комментарии, обнаруженные в файле вывода use.local.desc. Для этого файл вывода должен существовать до вызова egencache.
--repo=REPO
Определяет имя рабочего репозитария (по умолчанию репозитарий расположен в PORTDIR). Оно должно соответствовать записи repo_name (см. portage(5)) одного из репозитариев, сконфигурированных с помощью переменной PORTDIR или PORTDIR_OVERLAY (см. make.conf(5)).
--rsync
При использовании в связке с действием --update включает альтернативный способ синхронизации на тот случай, если содержимое кэша изменилось, но не изменилось ни время изменения, ни размер, вследствие чего rsync не может отследить изменения; подобные ситуации разрешаются путем обновления времени последнего изменения (и соответствующей записи в кэше). Эта опция имеет смысл только при распространении данных с помощью таких механизмов как rsync(1), осуществляющих контроль версий на основе меток времени и размера файлов (см. ошибка 139134). Она не нужна, если используется git(1), поскольку последний работает более тонко, выявляя изменения в инодах (описание см. в файле racy-git.txt из комплекта документации по Git).
--tolerant
Сообщить об успешном завершении и выйти в случае незначительных ошибок, таких как пропуск обновления кэша, когда ебилд либо не удалось использовать в качестве источника данных, либо он не был загружен сам по причине некорректного Manifest-файла.
--use-local-desc-output=ULD_OUTPUT
файл вывода данных use.local.desc (или '-' для стандартного вывода)
ОПЦИИ ОКРУЖЕНИЯ¶
EGENCACHE_DEFAULT_OPTS
Если эта переменная установлена в make.conf(5), то все опции, которые она содержит, будут добавлены в начало командной строки при каждом вызове. Временно это можно отменить использованием опции --ignore-default-opts.
ОШИБКИ¶
Формат кэшированных метаданных, хранящихся и доступных для получения в каталоге репозитария metadata/cache/, налагает серьезные ограничения - прежде всего, на механизм проверки. Последний, в настоящее время, основан на сопоставлении времени последнего изменения каждой записи в кэше с временем изменения соответствующего ebuild -сценария. В связи с тем, что кэш не содержит информации о состоянии еклассов, в случае, когда изменение еклассов влечет за собой изменение метаданных, этот механизм ненадежен. Кроме того, поскольку время изменения кэша должно совпадать со временем изменения ебилда, формат кэша пригоден лишь для передачи данных по протоколам, поддерживающим сохранение отметок времени (например, посредством rsync(1)). Если кэшированные данные находятся в git(1) -репозитариях, проблему возможно обойти с помощью команды emerge --sync: она обновит время изменения ебилдов согласно записям в кэше (это не относится лишь к тем ебилдам, которые были изменены по HEAD).
Для разрешения этих проблем в дальнейшем планируется введение расширенного формата кэша, который включит в себя дополнительные проверочные данные в виде digest-файлов как для ебилда, так и для наследуемых им еклассов. Пока этого не произошло, вам следует выставить metadata-transfer в переменной FEATURES (см. make.conf(5)). В результате будет генерироваться промежуточный кэш (в ином формате, включающем состояние еклассов); его рабочий каталог можно настроить, прибегнув к опции --cache-dir.
БАГТРЕКЕР¶
Об обнаруженных ошибках сообщайте на
АВТОРЫ¶
- Zac Medico <zmedico@gentoo.org>
ФАЙЛЫ¶
/etc/make.conf
Содержит переменные.
СМ. ТАКЖЕ¶
emerge(1), make.conf(5), portage(5)
ПЕРЕВОД¶
- Елена Гаврилова <e.vl.gavrilova@yandex.ru>
Октябрь 2010