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