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

Материал из ALT Linux Wiki
Нет описания правки
Строка 5: Строка 5:


== Знакомство с утилитами girar-nmu ==
== Знакомство с утилитами girar-nmu ==
утилиты предназначены для проведения NMU.


=== утилиты общего назначения. ===
=== утилиты общего назначения. ===
Строка 43: Строка 45:
последний build commit.
последний build commit.


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


Эти утилиты принимают либо список путей к файлам, либо список %{NAME} src.rpm файлов.
Эти утилиты принимают либо список путей к файлам, либо список %{NAME} src.rpm файлов.
Строка 58: Строка 60:


==== girar-nmu-local-build ====
==== girar-nmu-local-build ====
=== утилиты для заливки NMU пакетов на сборку. ===
Опции:
* {{cmd|-t task ID}}.
* {{cmd|-H git.alt alias}}. По умолчанию, {{cmd|git.alt}}.


==== girar-nmu-task-add ====
==== girar-nmu-task-add ====
girar-nmu-task-add [-t taskid] `cat names.txt`
Добавляет пакеты, подготовленные с помощью {{cmd|girar-nmu-prepare}}, на сборку в указанный task.
Полученный task надо запустить на сборку вручную с помощью
ssh git.alt task run


==== girar-nmu-task-for-each ====
==== girar-nmu-task-for-each ====
girar-nmu-task-for-each `cat names.txt`
В отличие от {{cmd|girar-nmu-task-add}}
запускает на сборку пакеты автоматически каждый пакет в отдельной task.


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

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


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

утилиты предназначены для проведения 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 или значение опции -b).

Пример:

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

утилиты для заливки NMU пакетов на сборку.

Опции:

  • -t task ID.
  • -H git.alt alias. По умолчанию, git.alt.

girar-nmu-task-add

girar-nmu-task-add [-t taskid] `cat names.txt`

Добавляет пакеты, подготовленные с помощью girar-nmu-prepare, на сборку в указанный task. Полученный task надо запустить на сборку вручную с помощью

ssh git.alt task run

girar-nmu-task-for-each

girar-nmu-task-for-each `cat names.txt`

В отличие от girar-nmu-task-add запускает на сборку пакеты автоматически каждый пакет в отдельной task.

Использование 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`