Repocop/RepairMiniHOWTO
Материал из ALT Linux Wiki
(→Создаем песочницу с repocop) |
(→Создаем песочницу с repocop) |
||
Строка 28: | Строка 28: | ||
Создаем песочницу | Создаем песочницу | ||
- | hsh --initroot-only <опции hasher для вашего Сизифа> | + | hsh --initroot-only --packager='<ваш packager email>' <опции hasher для вашего Сизифа> |
+ | export hasher=</path/to/your/hasher> | ||
+ | |||
+ | Пкременная $hasher нам нужна чтобы приведенный ниже код был полностью рабочим и его можно было | ||
+ | копировать и сразу запускать в консоли. | ||
копируем туда базу repocop | копируем туда базу repocop | ||
- | cp repocop-data-current.tar.gz | + | cp repocop-data-current.tar.gz $hasher/chroot/tmp/ |
и разворачиваем ее внутри песочницы в <code>~/.repocop</code>: | и разворачиваем ее внутри песочницы в <code>~/.repocop</code>: | ||
Строка 39: | Строка 43: | ||
hsh-install repocop-tools repocop-unittest | hsh-install repocop-tools repocop-unittest | ||
и все пакеты, необходимые для нормального выполнения произвольного <code>rpmbuild -bs</code> : | и все пакеты, необходимые для нормального выполнения произвольного <code>rpmbuild -bs</code> : | ||
- | hsh-install `~/repocop-tools-ls-rpmbuild-bs-environment -c | + | hsh-install `~/repocop-tools-ls-rpmbuild-bs-environment -c $hasher/chroot/usr/src/.repocop` |
Еще внутри песочницы нужно дать доступ к свежему Сизифу. Создаем точку монтирования | Еще внутри песочницы нужно дать доступ к свежему Сизифу. Создаем точку монтирования | ||
hsh-run mkdir /usr/src/Sisyphus | hsh-run mkdir /usr/src/Sisyphus | ||
и монтируем туда Сизиф (если ядро поддерживает read-only bind, лучше монтировать с ro): | и монтируем туда Сизиф (если ядро поддерживает read-only bind, лучше монтировать с ro): | ||
- | sudo mount --bind /var/ftp/pub/Linux/ALT/Sisyphus | + | sudo mount --bind /var/ftp/pub/Linux/ALT/Sisyphus $hasher/chroot/usr/src/Sisyphus |
- | правим в песочнице /usr/src/.rpmmacros | + | Проверяем и при необходимости правим в песочнице /usr/src/.rpmmacros так, чтобы там был правильный %packager. |
- | так, чтобы там был правильный %packager. | + | |
песочница к запуску репокопа готова. | песочница к запуску репокопа готова. |
Версия 18:47, 17 ноября 2008
Исправляем Репокопом пакеты за 5 минут. Краткое руководство.
Содержание |
Предисловие.
Для исправления пакетов вам понадобится
- локальное зеркало со свежим сизифом (Пусть это /var/ftp/pub/Linux/ALT/Sisyphus).
- в сизифе должны быть repocop >= 0.07-alt21 и repocop-unittest >= 0.14.
- Свежая база repocop (более 100 Mb).
- скрипт repocop-tools-ls-rpmbuild-bs-environment (есть в repocop >= 0.07-alt20 а также здесь.
Знакомимся с предлагаемыми патчами
Ищем свои папки на http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/ и знакомимся с предложенными патчами.
Создаем песочницу с repocop
Скачиваем скрипт и базу repocop
cd ~ wget -с http://repocop.altlinux.org/pub/repocop/scripts/repocop-tools-ls-rpmbuild-bs-environment chmod 755 ~/repocop-tools-ls-rpmbuild-bs-environment wget -c http://repocop.altlinux.org/pub/repocop/data/repocop-data-current.tar.gz
Создаем песочницу
hsh --initroot-only --packager='<ваш packager email>' <опции hasher для вашего Сизифа> export hasher=</path/to/your/hasher>
Пкременная $hasher нам нужна чтобы приведенный ниже код был полностью рабочим и его можно было копировать и сразу запускать в консоли.
копируем туда базу repocop
cp repocop-data-current.tar.gz $hasher/chroot/tmp/
и разворачиваем ее внутри песочницы в ~/.repocop
:
hsh-run tar xzf /tmp/repocop-data-current.tar.gz
Устанавливаем в песочницу repocop
hsh-install repocop-tools repocop-unittest
и все пакеты, необходимые для нормального выполнения произвольного rpmbuild -bs
:
hsh-install `~/repocop-tools-ls-rpmbuild-bs-environment -c $hasher/chroot/usr/src/.repocop`
Еще внутри песочницы нужно дать доступ к свежему Сизифу. Создаем точку монтирования
hsh-run mkdir /usr/src/Sisyphus
и монтируем туда Сизиф (если ядро поддерживает read-only bind, лучше монтировать с ro):
sudo mount --bind /var/ftp/pub/Linux/ALT/Sisyphus $hasher/chroot/usr/src/Sisyphus
Проверяем и при необходимости правим в песочнице /usr/src/.rpmmacros так, чтобы там был правильный %packager.
песочница к запуску репокопа готова.
Запускаем repocop
hsh-shell cd ~ repocop-fix-srpm --include-packager='viy,emacs,java' \ --packager='Igor Vlasenko <viy@altlinux.ru>' \ --outdir=OUT --acl-file /usr/src/Sisyphus/files/list/list.src.classic \ /usr/src/Sisyphus/files/noarch/RPMS /usr/src/Sisyphus/files/x86_64/RPMS /usr/src/Sisyphus/files/SRPMS
Вместо viy,emacs,java укажите ваш ник и любимые группы, в которые вы входите.
Заметим, что здесь нужно указывать /usr/src/Sisyphus/files/x86_64/RPMS, а не /usr/src/Sisyphus/files/i586/RPMS, поскольку в загруженной с repocop.altlinux.org базе данных есть только такие записи.
После окончания работы генератора в папке OUT будут исправленные srpm'ки.
Выходим, сразу отмонтируем Sisyphus, чтобы его не потерло при попытке следующей пересборки
sudo umount </path/to/your/hasher>/chroot/usr/src/Sisyphus
и копируем полученные src.rpm из песочницы.
Смотрим, собираем, заливаем в incoming.