Re: lug-bg: Пакетиране на RPM пакет без прекомпилиране
- Subject: Re: lug-bg: Пакетиране на RPM пакет без прекомпилиране
- From: Yanko Kaneti <yaneti@xxxxxxxxxxx>
- Date: Wed, 21 Sep 2005 20:41:54 +0300
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
On Wed, 2005-09-21 at 17:35 +0300, Sava Chankov wrote:
> Здравейте,
> на тези от вас, които ползват дистрибуция с пакетен управител RPM и
> чат-пат си правят сами пакети сигурно им се е случвало да не са
> описали правилно файловете в секцията %files и изграждането да завърши
> с грешка като:
>
> RPM build errors:
> File not found by glob: /var/tmp/kdbg-2.0.0-build/opt/kde3/bin/*
>
> След като поправя %files (и тествам с rpmbuild --short-circuit -bl),
> пакетът трябва да се изгради наново, което значи разпакетиране на
> изходния код, конфигуриране, компилиране, тестване и т.н., което при
> големите пакети си отнема време. Въпросът ми е отправен към всички
> ползватели на RPM базирани дистрибуции, различни от SuSE - има ли
> опция на rpmbuild (или както там се казва), с която просто да се
> пакетира %buildroot без да минаваме отново през фазите %prep, %build и
> %install?
Ако във %files нямаш специални неща като %doc, това би трябвало да
свърши работа:
rpmbuild \
--define "prep %{nil}" \
--define "build %{nil}" \
--define "install %{nil}" \
--define "clean %{nil}" \
-bb some.spec
Това шунтира неизвестна за мен част от rpm магията, която за съжаление
може и да ти трябва. Без нея не работи %doc и не се създават debuginfo
пакетите.
Друг вариант е да си направиш копие на spec-а, в който да сложиш едно
exit 0
под %prep и %build и да изчакваш само %install. Аз ползвам това за
големи пакети и досега не съм имал проблеми.
Това са доста груби методи за заобикаляне на политиката на rpm срещу
лесно прескачане до -bb и -ba. Дали тази политика е правилна или не е
друга тема.
Поздрави
Янко
|