Jak vytvořit RPM z tar.gz nebo tar.bz2 ?

Pavel XPJ Jisl pavel na cetoraz.info
Pondělí Březen 18 08:05:08 CET 2002


Zdravím,

  jak udělat z tar.gz nebo tar.bz2 rpm balíček? Způsobů je několik:

1) pokud je v tar.gz(bz2) balíčku soubor 'jmeno_baliku.spec," stačí pustit 
příkaz 'rpm -tb jmeno_baliku.tar.gz(bz2)' a v /usr/src/redhat/RPMS/arch se 
objeví balíček
2) pokud to tam není, existuje bezva nástroj 'checkinstall' (k nalezení na 
freshmeat.net), kdy po obligátním './configure' a 'make' se místo 'make 
install' spustí program 'checkinstall', který po získání nějakých informací o 
balíčku vytvoří opět v /usr/src/redhat/RPMS/arch rpm balíček
3) existuje klikací nástroj 'RUST' nebo 'cRUST' (opět na freshmeat.net), 
kterým si nataháte do jeho adresářové struktury soubory a on z nich vytvoří 
rpm balíček (ale nezkoušel jsem ho)
4) u ALSA ovladačů funguje metoda 'rpm -ba', příslušný .spec soubor se 
zkopíruje do /usr/src/redhat/SPEC (u alsy je uložen v 
alsa-driver-verze/utils/alsa-driver.spec) a zdrojový balíček do 
/usr/src/redhat/SOURCES. Pak se v adresáři /usr/src/redhat/SPEC spustí příkaz 
'rpm -ba jmeno.spec'.

,+---[ Dne pátek 15. březen 2002 18:21 n_petr na seznam.cz napsal(a) ]---+'
|  %prep
fáze 'preparation' - spouští se ./configure skripty...

|  %setup -q
|  %patch -p1 -b .buildroot
aplikuje se určitý patch, který je uložen společně se zdrojovým balíčkem

|  %build
|  make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
fáze 'build' - spouští se make s příslušnými parametry

|  %install
fáze 'instalace' - spouští se 'make install'

|  rm -rf $RPM_BUILD_ROOT
pokud existuje adresář uložený v proměnné $RPM_BUILD_ROOT, pak se smaže

|  mkdir -p $RPM_BUILD_ROOT/usr/bin
|  mkdir -p $RPM_BUILD_ROOT/usr/man/man1
vytvoření potřebné adresářové struktury

|  install -s -m 755 eject $RPM_BUILD_ROOT/usr/bin/eject
|  install -m 644 eject.1 $RPM_BUILD_ROOT/usr/man/man1/eject.1
instalace (kopírování) potřebných souborů (man install)

|  %clean
|  rm -rf $RPM_BUILD_ROOT
fáze 'clean' - vyčistíme po sobě, co jsme vytvořili

|  %files
fáze 'files' - zde se zapisují, které soubory se mají zapsat do balíčku

|  %defattr(-,root,root) 
jaké mají mít atributy
|  %doc README TODO COPYING ChangeLog
co bude v /usr/share/doc

|  /usr/bin/eject
|  /usr/man/man1/eject.1
a jednotlivé soubory


Pokud se chcete zajímat o rpm balíčky, tak doporučuji skvělou sérii článků o 
rpm v Linuxových novinách (myslím že www.linux.cz/noviny) nebo anglickou 
knihu "Maximum RPM" z (mysím) www.rpm.org 

Hodně úspěchů přeji,

s pozdravy Pavel

P.S. nevím, jakou má adresářovou strukturu SuSE... možná to bude trochu jinak

-- 

-[ xpj(at)no!future/cetoraz ]----------------[ xpj3k ]-
-> no!future consulting:  http://www.nofuture.cz
-> my homepage :          http://xpj.nofuture.cz
-> cetoraz homepage :     http://www.cetoraz.info
----------------------------------------[ iso-8859-2 ]-

>> Odchozi zprava muze obsahovat viry, protoze ji nikdo
>> nezkontroloval...


Další informace o konferenci Linux