Instalační balíčky: Porovnání verzí

Z Wikiknih
Smazaný obsah Přidaný obsah
Bez shrnutí editace
Li-sung (diskuse | příspěvky)
Řádek 156: Řádek 156:


[http://www.abclinuxu.cz/clanky/show/87933 Rukověť baliče RPM - IV (Fáze balení)]
[http://www.abclinuxu.cz/clanky/show/87933 Rukověť baliče RPM - IV (Fáze balení)]

[[Kategorie:Linux]]

Verze z 20. 6. 2005, 16:28

Pro usnadnění správy software v linuxových distribucích byly vyvinuty tzv. balíčkovací systémy

Srovnávací tabulka základních dotazovacích příkazů

Popis RPM DEB
Výpis všech nainstalovaných balíků rpm -qa dpkg -l
Vyhledání balíčku ke kterému patří určitý soubor rpm -q --whatprovides /cesta/k/souboru dpkg -S '/cesta/k/souboru'
Výpis obsahu balíčku rpm -ql <nainstalovaný balíček> dpkg -L <nainstalovaný balíček>
Výpis informací z nenainstalovaného balíčku rpm -qp --info /cesta/k/balíku/něco-1.2.3-i386.rpm dpkg -i /cesta/k/balíku/něco-1.2.3-i386.deb
Výpis obsahu nenainstalovaného balíčku rpm -qpl /cesta/k/balíku/něco-1.2.3-i386.rpm dpkg -c /cesta/k/balíku/něco-1.2.3-i386.deb

Schéma balíků

Instalační balíčky mohou být dvou typů:

  • zdrojové - obsahující zdrojový kód aplikace + soubory obsahující makra, nezbytná pro jeho kompilaci a instalaci
  • binární - obsahující již zkopilované binární soubory a další potřebné soubory + hlavičkové soubory nezbytné pro instalaci

deb

Deb balíček je archív vytvořený archivačním programem ar , který obsahuje dva tarballové archívy.

Jeden z nich obsahuje informace o balíku a druhý vlastní binární data, která se při instalaci kopírují do systému

rpm

rpm balíček je binární archív, který je tvořen hlavičkou a vloženým cpio archívem, který obsahuje vlastní instalované soubory - buď archív se zdrojovým kódem a tzv. spec souborem, nebo zkompilované soubory aplikace .

Tento archvív lze z rpm balíku extrahovat pomocí utility rpm2cpio

Podle specifikace je rozhodující pro identifikaci rpm balíčku prvních 8 bajtů.

  • první čtyři bajty (řetězec = edab eedb) tvoří tzv. magické číslo podle kterého program file pozná že jde o RPM balíček
  • druhé dva bajty určují použitou verzi rpm ( řetězec = 0300 )
  • zbývající dva určují zda jde o balíček binární (řetězec = 0000) nebo zdrojový (řetězec = 0001)

další bajty pak nesou informace o architektuře pro níž je balíček určen, digitální podpis, atd..

http://www.rpm.org/max-rpm/index.html

tgz

Nástroje pro správu balíků

deb

Základním nástrojem pro správu deb balíků je dpkg , ovšem časteji používaným, komplexnějším nástrojem je apt

rpm

Základním nástrojem pro správu rpm balíků je rpm , lze však použít i apt pro rpm (původně vyvinutý pro distribuci Conectiva, kterou nedávno koupil Mandrake), nebo urpmi (nástroj z distribuce Mandrake) či yum (nástroj z distribuce Fedora)

tgz

Tvorba balíku

Existuje několik utilit, které usnadňují tvorbu instalačních balíčků - checkinstall , resp. jejich vzájemnou konverzi - alien

deb

Kompilace zdrojového balíčku z distribuce

Relativně nejsnazší cestou jak vytvořit vlastní binární balíček je použití zdrojového balíčku dodávaného v distribuci. Postup se pokusím rozdělit do několika kroků:

  • Nejprve jako root musíte doinstalovat balíky nutné pro splnění požadovaných závislostí:
#apt-get build-dep <kompilovaná aplikace>
  • Potom už jako uživatel stáhnete a rozbalíte zdroj aplikace, co máte v úmyslu kompilovat. Že musíte mít nastavený v souboru /etc/apt/sources.list také zdroje ke zdrojákům , snad není nutno příliš zdůrazňovat.
#apt-get source <kompilovaná aplikace>
APT stáhne příslušný zdrojový balíček a rozbalí do aktuální pozice.
  • Skočíte do vytvořeného podadresáře a spustíte proces sestavení balíku příkazem
#dpkg-buildpackage -rfakeroot
Tento příkaz má řadu dalších parametrů, jimiž můžete kompilaci balíku řídit. Kupř. mě odmítl kompilaci provést, dokud jsem neurčil parametrem -m budoucího vlastníka (sebe)
  • Pokud je proces sestavení přerušen, je nutné analyzovat příčinu a pokusit se ji odstranit. Nejčastější příčiny..
  • nesplněné závislosti (viz první bod)
  • zastaralá verze některého z nezbytných programů (nejprve zkusit aktualizovat systém, popřípadě rekompilovat nejprve vyžadovaný program)
  • Proběhne-li kompilace v pořádku, naleznete v původním umístění zkompilovaný binární balíček, který můžete přes dpkg nainstalovat.


Balíček můžete také kompilovat ihned po stažení, pokud přidáte při stahování zdroje parametr -b Pak je však nutné spouštět příkaz jako root

Vytvoření vlastního balíčku ze zdrojového kódu

V distribucích založených na debianu je k dispozici balíček dh-make, který obsahuje skript, který je velkou pomocí při tzv. "debianizaci" zdrojového kódu aplikace. Příkaz dh_make, spuštěný v kořenu adresáře se zdrojovými kódy aplikace vytvoří základní soubory, nezbytné pro vytvoření balíčku. Ty pak stačí pouze modifikovat, podle specifických potřeb kompilovaného software.

Jde především o tyto soubory:

control - ve kterém se udávají závislosti, a další informační údaje

rules - který obsahuje vlastní scénář kompilace balíku (sem zadáváte parametry pro konfigurační skript, patche atp.)

rpm

tgz

Odkazy

deb

http://www.root.cz/clanky/balickovaci-system-debian-gnu-linux-apt/

http://www.root.cz/clanky/balickovaci-system-debian-gnu-linux-seznam-zdroju/

http://www.root.cz/clanky/balickovaci-system-debian-gnulinux-apt-get-2/

http://www.root.cz/clanky/balickovaci-system-debian-gnu-linux-source-build-dep/

http://www.root.cz/clanky/balickovaci-system-debian-gnu-linux-apt-cache/

http://www.root.cz/clanky/balickovaci-system-debian-gnu-linux-apt-file/

rpm

Rukověť baliče RPM - I (Úvod)

Rukověť baliče RPM - II (Prostředí)

Rukověť baliče RPM - III (Struktura spec souboru)

Rukověť baliče RPM - IV (Fáze balení)