LinuxovΘ noviny | Listopad 1997 | ||
| |||
Co je balφk softwaru?P°i instalaci jakΘhokoli v∞t╣φho softwarovΘho systΘmu - a╗ u╛ je to operaΦnφ systΘm (jako je t°eba Linux) nebo aplikace (jako nap°φklad WordPerfect) - asi ka╛d² zjistil, ╛e tento systΘm je distribuovßn v urΦit²ch odd∞len²ch kouscφch - balφcφch (packages). Takov²to balφk na instalaΦnφm mΘdiu obvykle slou╛φ k vygenerovßnφ jednoho nebo vφce soubor∙ v p°φslu╣nΘ Φßsti disku.Tak╛e pod pojmem balφk softwaru (package) si lze p°edstavit n∞kolik souvisejφcφch soubor∙ zabalen²ch do n∞jakΘ formy, kterou lze dßle distribuovat a na cφlovΘm stroji rozbalovat. A prßv∞ instalace - rozbalovßnφ - balφk∙ je jednou z hlavnφch ·loh sprßvce balφk∙ (package manageru). V∞t╣ina Φtenß°∙ tohoto listu ji╛ asi sly╣ela o distribucφch Debian a Red Hat. V oznßmenφch o t∞chto distribucφch se doΦtete, ╛e pou╛φvajφ urΦit² sofistikovan² systΘm sprßvy balφk∙. Co to je a proΦ nestaΦφ distribuovat software jako tar.gz soubor se doΦtete v tomto Φlßnku.
Sprßvce balφk∙Ne v╣echny operaΦnφ systΘmy (nebo lΘpe distribuce) majφ sv∙j vlastnφ definovan² formßt pro sprßvu balφk∙, nato╛ pak svΘho vlastnφho sprßvce balφk∙. Nap°φklad pod DOSem jsou programy distribuovßny nap°φklad jako samorozbalujφcφ se (.EXE) nebo komprimovßny programem ZIP nebo ARJ.N∞kterΘ systΘmy sice majφ sprßvce balφk∙, ale ve form∞ p°φslu╣n²ch balφk∙ je distribuovßn pouze operaΦnφ systΘm samotn², nikoli v╣ak dal╣φ programy od jin²ch v²robc∙. To je p°φpad v∞t╣iny komerΦnφch UNIX∙, uve∩me nap°φklad inst na IRIXu. A jinΘ systΘmy sprßvy balφk∙ zase nemajφ v╣echny vlastnosti, kterΘ lze Φekat od opravdovΘho systΘmu pro sprßvu balφk∙ (to je nap°φklad p°φpad Windows). Vyvstßvß tedy otßzka, co v╣echno lze Φekat od systΘmu pro sprßvu balφk∙.
Co m∙╛e um∞t sprßvce balφk∙?Samoz°ejm∞ prvnφ a zßkladnφ vlastnostφ je, ╛e musφ um∞t p°φslu╣n² balφk rozbalit a nainstalovat. Tomuto v podstat∞ vyhovujφ i balφky distribuovanΘ ve formßtu .tar.gz a tar s gzipem ve funkci sprßvce balφk∙.Podstatnou ·lohou pro sprßvce balφku je odinstalovßnφ softwaru. Jist∞ znßte p°φpady z prost°edφ Windows, kdy odinstalovan² program po sob∞ zanechß spousty DLL soubor∙, voln∞ rozprost°en²ch po celΘm disku, o doΦasn²ch souborech ani nemluv∞. Dobr² sprßvce balφk∙ by m∞l b²t schopen balφk odinstalovat, a to nejen smazßnφm v╣ech soubor∙, kterΘ k balφku pat°φ, ale i zru╣enφm odkaz∙ z dal╣φch konfiguraΦnφch soubor∙, zru╣enφm p°φslu╣n²ch pseudou╛ivatel∙ ze systΘmov²ch tabulek, adresß°∙ pro doΦasnΘ soubory a podobn∞. To jest po odinstalovßnφ balφku by m∞l systΘm b²t ve stavu, v jakΘm byl p°ed jeho nainstalovßnφm. Jist∞ se vßm u╛ n∞kdy stalo, ╛e jste narazili na svΘm disku na n∞jak² soubor, o n∞m╛ jste si v∙bec nebyli jisti, k Φemu vlastn∞ slou╛φ. Toto by m∞la b²t dal╣φ schopnost sprßvce balφk∙ - udr╛ovat v n∞jakΘ rychle vyhledßvatelnΘ form∞ informace o tom, kterΘ balφky jsou v systΘmu nainstalovßny a kterΘ soubory pat°φ do kterΘho balφku. Tohle u╛ nap°φklad Windows nezvlßdajφ. Sprßvce balφk∙ by si nejen m∞l pamatovat, kterΘ soubory k danΘmu balφku pat°φ, ale takΘ na po╛ßdßnφ zkontrolovat, jestli tyto soubory jsou skuteΦn∞ v takovΘm stavu, v jakΘm byly p°i konfiguraci. Sprßvce balφk∙ mß udr╛ovat mimo jinΘ i informace o p°φstupov²ch prßvech jednotliv²ch soubor∙, jejich vlastnφcφch a skupinßch. Navφc je dobrΘ, pokud si sprßvce balφk∙ pamatuje i kontrolnφ souΦet soubor∙ (obvykle pomocφ metody MD5). Pokud instalujete na sv∙j poΦφtaΦ cizφ software, m∞li byste takΘ mφt mo╛nost p°esv∞dΦit se, ╛e balφk nebyl cestou modifikovßn. K tomu slou╛φ mimo jinΘ kontrolnφ souΦet celΘho balφku. TakΘ lze ov∞°ovat, je-li balφk skuteΦn∞ vyroben tφm, o kom to tvrdφ. K tomu slou╛φ elektronick² podpis balφku, obvykle metodou RSA (PGP). ╚asto se setkßte s nutnostφ upgradovat urΦit² balφk softwaru. Na n∞kter²ch systΘmech vßm nezbude ne╛ smazat p∙vodnφ balik a nainstalovat nov². Tφmto ov╣em obvykle ztratφte p°φslu╣nΘ konfiguraΦnφ soubory. Sprßvce balφk∙ by m∞l b²t schopen upgradovat balφk s tφm, ╛e vßs upozornφ, kterΘ konfiguraΦnφ soubory jste m∞nili a kterΘ ne. Pochopiteln∞ by m∞l konfiguraΦnφ soubor p°epsat novou verzφ a star² n∞kam ulo╛it, byl-li modifikovßn. Stßvß se toti╛, ╛e novß verze softwaru vy╛aduje jin² formßt konfiguraΦnφho souboru, ne╛ byl u star╣φ verze. Instalace softwaru nenφ ov╣em jen rozbalenφ balφku. ╚asto je t°eba p°idat urΦitΘ informace do r∙zn²ch soubor∙ (/etc/passwd, /etc/inetd.conf a podobn∞). Tento ·kol je netrivißlnφ a je to jedna z p°φΦin existence konfiguraΦnφch adresß°∙ mφsto konfiguraΦnφch soubor∙ (/etc/cron.daily, /etc/profile.d, /etc/rc.d, /etc/pam.d a dal╣φ). P°esto je n∞kdy nutno zm∞nit konfiguraΦnφ soubor programem. Dobr² sprßvce balφk∙/formßt balφk∙ by m∞l um∞t spustit skript ulo╛en² uvnit° balφku, a to p°ed instalacφ, po instalaci, p°ed smazßnφm a po smazßnφ urΦitΘho balφku. N∞kdy je takΘ nutnΘ, aby p°ed nainstalovßnφm urΦitΘho balφku byl nainstalovßn jin² balφk (°φkßme, ╛e balφk zßvisφ na jinΘm balφku). Toto se typicky vyskytuje nap°φklad u knihoven - p°φslu╣nß sdφlenß knihovna musφ b²t nainstalovßna p°ed instalacφ programu, kter² ji pou╛φvß. Stßvß se takΘ, ╛e balφk nevy╛aduje instalaci jinΘho konkrΘtnφho balφku, ale balφku, obsahujφcφho urΦit² soubor (nap°φklad program mail m∙╛e vy╛adovat existenci souboru /usr/sbin/sendmail, nebo program v Perlu vy╛aduje p°edchozφ nainstalovßnφ Perlu samotnΘho). Dal╣φ d∙le╛itou vlastnostφ sprßvce balφku jsou tedy zßvislosti (dependencies). Pro psanφ obslu╛n²ch program∙ pro sprßvu balφk∙ se takΘ vy╛aduje, aby byl formßt balφku dob°e dokumentovßn, navr╛en roz╣i°iteln∞ pro p°idßnφ dal╣φch vlastnostφ (s tφm souvisφ i umo╛n∞nφ dal╣φho v²voje formou verze p°φslu╣nΘho formßtu balφk∙). V²voj aplikacφ a nadstaveb na sprßvu balφk∙ jist∞ usnadnφ i dostupnost knihovny pro prßci s balφky a s databßzφ instalovan²ch balφk∙. Sprßvce balφk∙ musφ takΘ napomßhat vytvß°enφ balφk∙ n∞k²m jin²m, ne╛ autorem distribuce nebo operaΦnφho systΘmu. Musφ b²t schopen distribuovat i balφky ve zdrojovΘ podob∞ vΦetn∞ p°φpadn²ch zßplat. V balφku ve zdrojovΘ form∞ musφ b²t obsa╛eny v╣echny informace k automatickΘmu skompilovßnφ a nainstalovßnφ balφku z p∙vodnφ nemodifikovanΘ zdrojovΘ verze danΘho softwaru. To jest v balφku by m∞l b²t p∙vodnφ nemodifikovan² zdrojov² text sßm (nap°φklad ve form∞ tar.gz souboru), zßplaty pro p°φpadn² port na danou platformu, p°φkazy pro rozbalenφ, kompilaci a nainstalovßnφ, a samoz°ejm∞ seznam soubor∙, kterΘ v koneΦnΘ fßzi budou ke kompilovanΘmu balφku pat°it. Poslednφ, i kdy╛ ne nejmΘn∞ d∙le╛itou vlastnostφ sprßvce balφk∙ je, aby samotn² software pro sprßvu balφk∙ byl voln∞ ╣i°iteln². Tato vlastnost je d∙le╛itß u jakΘhokoli softwaru stejn∞ jako u sprßvce balφk∙ softwaru.
Sprßvci balφk∙ v LinuxuV distribucφch Linuxu se postupem Φasu vyvinuly prost°edky pro sprßvu balφk∙, a to v nejr∙zn∞j╣φch formßch a schopnostech. Sprßvce pkgtool z distribuce Slackware mß pom∞rn∞ omezenΘ mo╛nosti. Udr╛uje informace o jmΘnech soubor∙ v jednotliv²ch balφcφch (a tedy umo╛≥uje jistou formu odinstalovßnφ balφku), umφ i spustit skript po instalaci. Jeho kladnou vlastnostφ je formßt balφku - jednß se o b∞╛n² tar.gz soubor, kter² tedy lze prohlφ╛et a rozbalovat i na jin²ch ne╛ Linuxov²ch systΘmech.Mezi dal╣φ pat°φ dpkg z distribuce Debian. Je to prvnφ sprßvce balφk∙, kter² umφ i zßvislosti (dependence). Distribuce Red Hat pou╛φvß systΘm RPM, o kterΘm bude v tomto list∞ °eΦ v p°φ╣tφch Φφslech. Oba dva systΘmy tvo°φ ╣piΦku ve sprßv∞ balφk∙. Li╣φ se v n∞kter²ch drobnostech s tφm, ╛e postupn∞ p°ebφrajφ i kladnΘ vlastnosti ze sv²ch prot∞j╣k∙: do RPM byly implementovßny zßvislosti, do dpkg zase MD5 souΦty a PGP podpisy. P°ed n∞jakou dobou se objevil program alien, kter² umo╛nφ instalovat balφky z Red Hatu, Debianu a Slackwaru i do libovolnΘ z t∞chto distribucφ.
V p°φ╣tφm Φφsle Linuxov²ch novin porovnßme dpkg a RPM.
|