Mock-urpm — различия между версиями
Материал из Rosalab Wiki
(→Что не умеет, но в планах есть) |
(→Что умеет mock-urpm) |
||
Строка 15: | Строка 15: | ||
* может работать с git/cvs/svn. Пока вообще не не пробовал, но как-то может. | * может работать с git/cvs/svn. Пока вообще не не пробовал, но как-то может. | ||
* испольнять указанные команды в последнем чруте, копировать туда/оттуда файлы. Правда, после использования tmpfs чрут будет пустой. | * испольнять указанные команды в последнем чруте, копировать туда/оттуда файлы. Правда, после использования tmpfs чрут будет пустой. | ||
− | |||
* защита от зависания процесса сборки (можно установить таймаут) | * защита от зависания процесса сборки (можно установить таймаут) | ||
− | * многие параметры настраиваются через конфигурационные файлы. При запуске можно указать нужный конфигурационный файл (-r configname | + | * многие параметры настраиваются через конфигурационные файлы. При запуске можно указать нужный конфигурационный файл (-r configname) |
===Как использовать=== | ===Как использовать=== |
Версия 14:11, 23 мая 2012
Обзор
Mock - программа, собирающая rpm пакеты внутри chroot. Содержимое этого chroot определяется конфигурационными файлами, которых может быть несколько (нужный выбирается опцией -r).
Что умеет mock-urpm
(ну и mock в федоре, конечно же):
- собирает пакеты в chroot (монтирует туда все нужные директории с хоста, ставит минимальный набор пакетов, доустанавливает нужные для сборки конкретного пакета и собирает)
- кэширует установленную минимальную систему, при следующем запуске лишь разархивирует ее и проводит апдейт пакетов. При внесении изменений в конфиги удаляет кэш.
при сборке одного пакета все результаты (логи и собранные rpm) можно найти в /var/lib/mock-urpm/{rootname}/results
- понижает свои права, когда нужно. Для этого при установке создается группа mock-urpm и пользователь из SUDO_USER помещается в эту группу (поэтому установка должна производиться через sudo, иначе root будет помещен в группу mock-urpm )
- имеет интерфейс для подключения плагинов. Часть функционала сейчас реализована через плагины (tmpfs, ccache, selinux, root-cache, bind-mount).
- использует tmpfs (включается через конфиги (site-defaults.cfg) или аргументов --enable tmpfs).
- имеет модуль поддержки selinux. Пока что он отключен, но на будущее может пригодиться
- может подсовывать в chroot заданный /etc/hosts
- может работать с git/cvs/svn. Пока вообще не не пробовал, но как-то может.
- испольнять указанные команды в последнем чруте, копировать туда/оттуда файлы. Правда, после использования tmpfs чрут будет пустой.
- защита от зависания процесса сборки (можно установить таймаут)
- многие параметры настраиваются через конфигурационные файлы. При запуске можно указать нужный конфигурационный файл (-r configname)
Как использовать
Если поставили пакет через sudo urpmi, то имеем правильно настроенного пользователя. sudo mock-urpm /path/to/src/rpm --enable tmpfs должен привести к успеху. Логи читаем в /var/lib/mock-urpm/{rootname}/results.
Так же все подробно описано в man mock-urpm.
Полезные статьи
http://fedoraproject.org/wiki/Using_Mock_to_test_package_builds