Repocop/RepairMiniHOWTO: различия между версиями

Материал из ALT Linux Wiki
Строка 28: Строка 28:
  chmod 755 ~/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
  wget -c http://repocop.altlinux.org/pub/repocop/data/repocop-data-current.tar.gz
и разворачиваем ее в <code>~/.repocop</code>:
 
  cd ~
Создаем песочницу
tar xzf repocop-data-current.tar.gz
hsh --initroot-only <опции hasher для вашего Сизифа>
 
копируем туда базу repocop
cp repocop-data-current.tar.gz </path/to/your/hasher>/chroot/tmp/
 
и разворачиваем ее внутри песочницы в <code>~/.repocop</code>:
  hsh-run tar xzf /tmp/repocop-data-current.tar.gz


Устанавливаем в песочницу repocop
Устанавливаем в песочницу repocop
hsh --initroot-only <опции hasher для вашего Сизифа>
  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`
  hsh-install `~/repocop-tools-ls-rpmbuild-bs-environment -c </path/to/your/hasher>/chroot/usr/src/.repocop`
 
<code>~/.repocop</code> нам больше не нужен, переносим его в песочницу:
sudo mv ~/.repocop </path/to/your/hasher>/chroot/usr/src/
Если планируется запускать внутри тесты, можно также сменить владельца.
Для починки пакетов это не требуется.


Еще  внутри песочницы нужно дать доступ к сфежему Сизифу. Создаем точку монтирования
Еще  внутри песочницы нужно дать доступ к сфежему Сизифу. Создаем точку монтирования

Версия от 21:30, 15 ноября 2008


Исправляем Репокопом пакеты за 5 минут. Краткое руководство.

Предисловие.

Для исправления пакетов вам понадобится

  • локальное зеркало со свежим сизифом (Пусть это /var/ftp/pub/Linux/ALT/Sisyphus).

Если в сизифе еще не появились repocop >= 0.07-alt19 и repocop-unittest >= 0.14, то их можно взять здесь и подложить hasher'у.

  • Свежая база 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 <опции hasher для вашего Сизифа>

копируем туда базу repocop

cp repocop-data-current.tar.gz </path/to/your/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 </path/to/your/hasher>/chroot/usr/src/.repocop`

Еще внутри песочницы нужно дать доступ к сфежему Сизифу. Создаем точку монтирования

hsh-run mkdir /usr/src/Sisyphus

и монтируем туда Сизиф:

sudo mount --bind /var/ftp/pub/Linux/ALT/Sisyphus </path/to/your/hasher>/chroot/usr/src/Sisyphus

песочница к запуску репокопа готова.

Запускаем repocop

repocop-fix-srpm --include-packager='viy,@emacs,@java' \
--acl-file ~/Sisyphus/files/list/list.src.classic \
~/Sisyphus/files/noarch/RPMS ~/Sisyphus/files/x86_64/RPMS ~/Sisyphus/files/SRPMS

Заметим, что здесь нужно указывать ~/Sisyphus/files/x86_64/RPMS, а не ~/Sisyphus/files/i586/RPMS, поскольку в загруженной с [repocop.altlinux.org] базе данных есть только такие записи.

Вместо viy,@emacs,@java укажите ваш ник и любимые группы, в которые вы входите.