- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah -

LinuxovΘ noviny Prosinec 1997

┌vod do RPM

Jan "Yenya" Kasprzak, 6. listopadu 1997

V p°edchozφm Φφsle jsem se v∞noval problematice balφk∙ softwaru obecn∞ a informacφm o tom, co by sprßvce balφk∙ m∞l um∞t. V tomto Φφsle se podrobn∞ji podφvßme na systΘm RPM (RedHat Package Manager) z Red Hat Linuxu.

SouΦasn² systΘm RPM je v²sledkem dlouhΘho v²voje. Je zalo╛en na star╣φch systΘmech Red Hat Softwaru, jako je RPP a PM, a takΘ na sprßvci balφk∙ PMS, pou╛itΘho v distribuci BOGUS blahΘ pam∞ti. Prvnφ verze RPM byly psßny v Perlu a nepodporovaly vφce architektur. Pou╛itφ Perlu takΘ komplikovalo nasazenφ RPM v omezenΘm prost°edφ, jako jsou nap°φklad bootovacφ diskety p°i instalaci systΘmu.

V souΦasnΘ dob∞ se pou╛φvß RPM verze 2, co╛ je systΘm psan² v jazyce C, p°enositeln² (a takΘ p°enesen²) na nejr∙zn∞j╣φ architektury, s dostateΦn∞ rychl²m a robustnφm designem databßze. Formßt databßze i RPM balφk∙ je navr╛en roz╣i°iteln∞, lze tedy p°idßvat novΘ vlastnosti. V poslednφ dob∞ to nap°φklad byly zßvislosti mezi balφky nebo balφky nezßvislΘ na architektu°e (to jsou ty, kterΘ neobsahujφ ╛ßdnΘ binßrnφ programy zßvislΘ na architektu°e; p°φkladem je balφk ghostscript-fonts nebo howto).

Cφle nßvrhu RPM

  • JednoduchΘ instalovßnφ a ru╣enφ balφk∙. PreinstalaΦnφ a post-instalaΦnφ skripty dßvajφ autorovi balφku kompletnφ kontrolu nad tφm, jak se balφk bude instalovat (nap°φklad qmail p°idßvß urΦitΘ u╛ivatele do /etc/passwd, ssh m∙╛e p°i instalaci vygenerovat RSA pßr klφΦ∙ a podobn∞). TotΘ╛ platφ pro skripty p°ed a po odinstalovßnφ balφku. Je-li balφk navr╛en sprßvn∞, m∙╛e pro svoji instalaci i odinstalovßnφ uΦinit v╣e pot°ebnΘ.

  • Kontrola instalovan²ch balφk∙. Sprßvce balφk∙ umφ nejen zjistit, kterΘ soubory pat°φcφ danΘmu balφku se zm∞nily, ale umφ takΘ nap°φklad vyvolat verifikaΦnφ skript, kter² umo╛nφ nap°φklad zkontrolovat syntaxi konfiguraΦnφch soubor∙.

  • Jednoduchß tvorba balφk∙. Tvorba a ·dr╛ba balφk∙ v RPM nenφ o mnoho slo╛it∞j╣φ, ne╛ kompilovßnφ a instalace ze zdrojov²ch text∙. Pokud se tato instalace provßdφ na vφce poΦφtaΦφch, nebo dokonce chcete Φas od Φasu instalovat nov∞j╣φ verzi danΘho softwaru, RPM znaΦn∞ ╣et°φ Φas: ve zdrojovΘm RPM balφku je toti╛ poznamenßno, jakΘ v╣echny ·pravy autor d∞lal na p∙vodnφ zdrojovΘ distribuci softwaru, ne╛ vznikla kompilace a pozd∞ji i b∞hu schopnß instalace.

  • Prßce na vφce architekturßch. RPM zamezφ duplikaci prßce p°i kompilovßnφ a pou╛φvßnφ tΘho╛ softwaru na vφce architekturßch. Pokud je kompilace nebo instalace balφku na jinΘ platform∞ odli╣nß od p∙vodnφ platformy, mß RPM mo╛nost ve zdrojovΘm balφku uvßd∞t p°φkazy, kterΘ se provedou jen na urΦit²ch architekturßch.

Uvnit° RPM balφku

Nebudu zde popisovat p°esn∞ definici struktury RPM souboru, ale p°esto stojφ za to alespo≥ rßmcov∞ v∞d∞t, co v╣echno RPM balφk obsahuje.

  • JmΘno balφku. Tato polo╛ka je zde proto, aby bylo mo╛nΘ RPM soubory uklßdat i na svazcφch, kterΘ nepodporujφ dostateΦn∞ dlouhß jmΘna soubor∙ (jako nap°φklad FAT nebo Minix FS). Jako p°φklad jmΘna si uve∩me t°eba ssh-1.2.21-1i.i386.rpm.

    JmΘno balφku se obvykle sklßdß z t∞chto komponent:

    • JmΘno softwaru (zde: ssh). Odpovφdß nßzvu programu nebo programovΘho systΘmu, kter² je obsa╛en v danΘm balφku nebo souhrnn∞ pojmenovßvß soubory v tomto balφku (t°eba XFree86-100dpi-fonts).
    • Verze softwaru (zde: 1.2.21). Identifikuje verzi programu, kter² je uvnit° danΘho balφku.
    • Verze balφku (package release; zde: 1i). Odpovφdß zhruba tomu, kolikrßt byl balφk znovu zabalen s r∙zn²mi modifikacemi a ·pravami a zve°ejn∞n. Pokud se nap°φklad najde chyba v post-instalaΦnφm skriptu, m∙╛e autor balφku vydat nov² release balφku.
    • Architektura (zde: i386). Specifikuje, pro kterou platformu je balφk urΦen. Navφc poslednφ verze RPM podporujφ specißlnφ architekturu noarch, kterß znaΦφ, ╛e balφk lze instalovat na libovolnΘ platform∞ (nap°φklad ji╛ zmi≥ovan² balφk ghostscript-fonts). V RPM balφku je krom∞ hardwarovΘ architektury je╣t∞ uveden operaΦnφ systΘm, pro kter² je balφk urΦen. Tento atribut se ale neprojevφ v nßzvu balφku.

  • Informace o balφku jako celku:

    • datum a Φas vytvo°enφ balφku.
    • datum a Φas instalace balφku, jednß-li se o ji╛ nainstalovan² balφk.
    • celkovß velikost v╣ech soubor∙ v balφku.
    • jmΘno stroje, na kterΘm byl balφk vytvo°en.
    • jmΘno Φlov∞ka nebo firmy, kterß balφk distribuuje.
    • jmΘno distribuce, ke kterΘ balφk pat°φ.
    • skupina softwaru, do kterΘ balφk nßle╛φ (nap°φklad balφk ssh pat°φ do skupiny Applications/Networking). Seznam skupin a podskupin zve°ej≥uje Red Hat Software. Skupina se pou╛φvß k tomu, aby u╛ivatel byl schopen prochßzet balφky tematicky pat°φcφ k sob∞.
    • MD5 kontrolnφ souΦet celΘho balφku.
    • libovoln² (i nulov²) poΦet digitßlnφch PGP podpis∙. Tyto podpisy slou╛φ k ov∞°enφ autora balφku. Balφky distribuovanΘ Red Hat Software jsou podepsßny jednφm PGP klφΦem, tak╛e je mo╛nΘ je zkontrolovat. PGP klφΦ softwaru naleznete na ftp://ftp.fi.muni.cz/pub/linux/distributions/redhat/redhat-5.0/i386/RPM-PGP-KEY
    • popis balφku - jedno°ßdkovß informace o balφku (summary) a jednak libovoln∞ dlouh² popis (description).
    • instalaΦnφ a verifikaΦnφ scripty.

  • Informace o jednotliv²ch souborech:

    • jmΘno souboru s cestou
    • obsah souboru
    • p°φstupovß prßva
    • vlastnφk a skupina souboru
    • MD5 kontrolnφ souΦet ka╛dΘho souboru

V p°φ╣tφm Φφsle se budeme v∞novat jednotliv²m parametr∙m programu RPM pro instalaci, ru╣enφ a upgradovßnφ balφk∙ a pro zφskßvßnφ informacφ o balφcφch. *


- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah -