Girar/girar-nmu: различия между версиями

Материал из ALT Linux Wiki
Строка 41: Строка 41:
Клонирует репозиторий для name с git://git.altlinux.org/gears/,
Клонирует репозиторий для name с git://git.altlinux.org/gears/,
Устанавливает локальную ветвь git (по умолчанию master) на  
Устанавливает локальную ветвь git (по умолчанию master) на  
посдедний build commit.
последний build commit.


=== утилиты для проведения NMU. ===
=== утилиты для проведения NMU. ===

Версия от 20:29, 21 ноября 2010


Знакомство с утилитами girar-nmu

утилиты общего назначения.

Опции:

  • -b rpm репозиторий, например, -b 5.1. По умолчанию sisyphus.
  • -d локальная ветвь git. Позволяет менять имя используемой локальной ветви git

для тех команд, гд это имеет смысл.

girar-get-upload-method <name>

Позволяет быстро узнать, как нужно заливать указанный пакет: через src.rpm или через git tag в git/gear репозитории.

Примеры:

$ girar-get-upload-method xmms       
srpm
$ girar-get-upload-method -b p5 hplip
git

girar-fetch-build-commit

Удобна, когда на ваш пакет сделан NMU и нужно втянуть в ваш репозиторий чужой NMU commit. По умолчанию, за имя локальной ветки берется имя rpm репозитория (sisyphus).

Пример:

hplip.git $ girar-fetch-build-commit 
From git://git.altlinux.org/gears/h/hplip
  1359385..1970106  sisyphus   -> sisyphus

girar-clone-build-commit <name>

Клонирует репозиторий для name с git://git.altlinux.org/gears/, Устанавливает локальную ветвь git (по умолчанию master) на последний build commit.

утилиты для проведения NMU.

Эти утилиты принимают либо список путей к файлам, либо список %{NAME} src.rpm файлов. Для удобства утилита girar-nmu-helper-name2path позволяет преобразовать список имен в список путей к файлам.

girar-nmu-helper-name2path /path/to/files/SRPMS `cat names.txt` > files.txt

Обратное преобразование можно выполнить так:

rpmquery --queryformat '%{NAME}\n' -p `cat files.txt`


girar-nmu-sort-transaction

girar-nmu-prepare

girar-nmu-local-build

girar-nmu-task-add

girar-nmu-task-for-each

Использование girar-nmu utils на примере обновления perl

План будет следующий: I. Получаем список пакетов, сортируем транзакцию. II. Готовим новые версии. III. Добавляем в task.

cd /var/ftp/pub/Linux/ALT
girar-nmu-helper-sort-transaction --mark '^libperl\.so\.5\.' \
/Sisyphus/files/SRPMS /Sisyphus/files/noarch/RPMS /Sisyphus/files/i586/RPMS \
> names
girar-nmu-helper-name2path /Sisyphus/files/SRPMS `cat names` > files
girar-nmu-prepare --changelog '- rebuild with new perl' --hook ./perl_510_upgrade.pl `cat files`