Mock-urpm — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
м (Настройка)
м (Настройка)
Строка 21: Строка 21:
 
====Настройка====
 
====Настройка====
 
Все конфигурационные файлы лежат в {{Источник|/etc/mock-urpm}}.
 
Все конфигурационные файлы лежат в {{Источник|/etc/mock-urpm}}.
Настройки по умолчанию вшиты в скрипт, поэтому все конфигурационные файлы могут быть пустыми. Основной файл, {{Источник|site-defaults.cfg}}, содержит закомментированные настройки по умолчанию.
 
  
В первую очередь применяются настройки из {{Источник|site-defaults.cfg}}, затем из конкретного пользовательсткого конфигурационного файла (default.cfg, если не указан другой опцией -r)
+
Настройки по умолчанию вшиты в скрипт, поэтому все конфигурационные файлы могут быть пустыми.
 +
 
 +
Основной файл, {{Источник|site-defaults.cfg}}, содержит закомментированные настройки по умолчанию.
 +
В первую очередь применяются настройки из {{Источник|site-defaults.cfg}}, затем из конкретного пользовательсткого конфигурационного файла ({{Источник|default.cfg}}, если не указан другой опцией -r)
  
 
====Запуск====
 
====Запуск====

Версия 22:49, 3 июля 2012

Обзор

mock-urpm - программа, собирающая 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)

Как использовать

Настройка

Все конфигурационные файлы лежат в /etc/mock-urpm.

Настройки по умолчанию вшиты в скрипт, поэтому все конфигурационные файлы могут быть пустыми.

Основной файл, site-defaults.cfg, содержит закомментированные настройки по умолчанию. В первую очередь применяются настройки из site-defaults.cfg, затем из конкретного пользовательсткого конфигурационного файла (default.cfg, если не указан другой опцией -r)

Запуск

Если поставили пакет через sudo urpmi, то имеем правильно настроенного пользователя.

Команда mock-urpm /path/to/src.rpm --enable tmpfs соберет rpm из указанного src.rpm.

Логи читаем в /var/lib/mock-urpm/{rootname}/results, там же складываются собранные пакеты.


Так же все подробно описано в man mock-urpm.

Полезные статьи

http://fedoraproject.org/wiki/Using_Mock_to_test_package_builds