Распаковка файла RPM и перепаковка - PullRequest
14 голосов
/ 15 июня 2011

У меня есть файл RPM.Я должен внести некоторые изменения в этот RPM, перепаковать его и протестировать.Кто-нибудь может мне помочь?

Ответы [ 2 ]

14 голосов
/ 24 июня 2011

Лучший способ изменить RPM, для которого у вас нет исходного кода, состоит в следующем:

  1. Распакуйте об / мин в каталог с помощью команды rpm2cpio
  2. Внесите необходимые изменения внутри этого подкаталога
  3. Создайте «фиктивный» файл спецификации и создайте его.

Этот фиктивный файл спецификации может выглядеть следующим образом:

Name: blah
Version: 1.0
Release: 1
Summary: blah
License: blah
Distribution: blah
Group: blah
Packager: me
BuildRoot: /path/to/dir/with/mods

%description
blah

%files
/path/to/dir/with/mods/*

Заменить каждое "бла" здесь реальным значением (для получения значений используйте rpm -qpi <strong>rpm file</strong>).Замените BuildRoot на каталог, в котором вы распаковали измененный rpm.Затем запустите rpmbuild -bb dummy.spec.

Поскольку не определены шаги подготовки / настройки / сборки / установки, он просто возьмет то, что находится в buildroot, и сделает RPM.

Если пакет rpmесть файлы сценариев, вы также должны будете поместить их в этот фиктивный файл спецификации.Чтобы увидеть, есть ли в пакете какие-либо сценарии, запустите: rpm -qp --scripts <strong>rpm file</strong>.То же самое касается зависимостей, предварительных требований и т. Д.

Могут быть и другие детали, которые я пропускаю, но этого должно быть достаточно, чтобы начать работу.

ОБНОВЛЕНИЕ: Для чего это стоит, есть также http://rpmrebuild.sourceforge.net/

0 голосов
/ 15 июня 2011

Я думаю, что это понятие называется патч. Я начал исправлять первый srpm, используя эту ссылку . Но основная идея заключается в том, что получите srpm, установите srpm, создайте свой патч в этом каталоге области сборки и укажите файл патча% patch0 -p1 в файле спецификации. Затем выполните сборку RPM. Счастливого исправления!

...