A csomagkezelés világa

Sorozat indítónak szánt írásunkban a RPM csomagkezelés alapjaival, alapfogalmaival foglalkozunk. Nem térünk ki most minden kérdésre részletesen, de igyekszünk a csomagkezelés minél több aspektusát felvillantani.

Ez azok számára lehet hasznos, akik először találkoznak a Linuxszal és a csomagkezeléssel. Később még számos - ebben az írásban felmerülő - kérdéssel foglalkozunk itt a sys-admin oldalon, reményeink szerint olvasóink legnagyobb örömére.

További szószaporítás helyett lássuk miről is szól a csomagkezelés.

Csomagok
Először érdemes átfutni azt, hogy mi is az a csomag. A csomagok valójában speciális formátumú tömörített fájlok. Több nagy formátumuk ismert, egyike a Red Hat által kifejlesztett .rpm csomagformátum. Ezt különböző terjesztések használják, köztük a Fedora is.
A terjesztések gyakorlatilag ilyen csomagokból épülnek fel, melyek tartalmazzák a felhasználói és a rendszerprogramok futásához szükséges binárisokat, beállító fájlokat valamit egyéb grafikai elemeket (ikonok stb.) és a dokumentációkat is.
Nem pusztán fájlokat tartalmaznak, hanem adatokat a csomagról és annak környezeti beállítását végző szkripteket. Mivel az egyes programoknak a működésükhöz esetleg más programokra is szükségük lehet, erről is tartalmaznak leírást a csomagok. Ezt a jelenséget nevezik függőségnek. Az egyik programnak, vagy eszköznek szüksége van egy másikra, tehát az a függősége.
Nem pusztán programok lehetnek a csomagokban, hanem a terjesztés minden más eleme is, mint például a beállító fájlok.
A csomagokat bonyolult verziószámozással is ellátják, ami a laikus számára érthetetlen számsor csupán, de a hozzáértő szemnek nagyon sok mindent elárul az adott csomagról. Ez a verzió számozás ugyanis szigorú számozási rendszert követ. Az egyes csomagok megnevezése úgy épül fel, hogy a program (vagy csomag) nevét követi annak verziószáma, majd a csomag verziója kötőjellel elválasztva. Ezután következik egy jelölés a rendszerre, majd az architektúra, amire a csomag készült. Az alábbi példából így már könnyen leolvasható, hogy ez a csomag a nano text editor, verziószáma a 2.0.6, a 4. csomag ami ebből készült. Ez egy Fedora 9-re (fc9) és i386 rendszerekre készült csomag. Ez az elnevezési módszert hívják NEVRA-nak, ami a Name, Epoch, Version, Release, Arch szavakból tevődik össze.

nano-2.0.6-4.fc9.i386.rpm

Tárolók
Ezeket a csomagokat a disztribútor által fenntartott könyvtárakból érhetjük el. Amik leggyakrabban web, ftp szervereken - vagy akár helyi adattárolón pl: DVD-n - elhelyezett könyvtárak a csomagokkal és index fájlokkal. Az index fájlok a csomagkezelő számára írják le a könyvtár tartalmát. Ezeket a könyvtárakat hívják repository-nak, vagy tárolónak (szakzsargonban gyakran "repó" néven találkozunk velük). A Linux terjesztések általában elérhetővé tesznek legalább 1-2 tárolót. Tipikusan innen szerezhetjük be a rendszerünkhöz biztosított frissítéseket és minden szükséges programokat.
Látható, hogy a Linux disztribúciók csomagkezelése megkönnyíti a programok telepítését, eltávolítását, frissítését és nyilvántartását. Ezen kívül még más előnyöket is biztosítanak a felhasználóknak. Nem kell programot keresgélni az interneten, elég a tárolókban keresni. Persze felvetődik a kérdés, hogy mennyire jó az, hogy a felhasználó, mintegy a szabadságát feladva rábízza magát a disztribútor választásaira. Valójában a nagyobb terjesztéseknél a csomagválaszték elég bőséges, és nagyrészt lefedi az arra érdemes linuxos programok listáját.
Érdemes megemlíteni, hogy a hozzáadott programok telepítése ellenőrzött tárolókból történik. A disztribútor által szállított csomagok ugyanis komoly ellenőrzésen esnek át. Nyugodtan megbízhatunk disztribúciónkban, mivel a csomagot készítők felelnek a közzétett csomag minőségéért. Sok esetben nem csak jó hírnevüket kockáztatnák a rossz minőségű csomagokkal, de bevételi forrásaikat is a kereskedelmi terjesztések esetében. (pl: Red Hat. ) A csomagok hitelesítésére a GPG aláírás rendszerét használják. Minden csomagot ellátnak egy hitelesítő kulccsal. Ez által lehet ellenőrizni, hogy az adott csomag valóban a megfelelő forrásból ered -e és biztosít minket arról, hogy nem változtattak - véletlenül, vagy ártó szándékkal - a telepítendő csomagon. Érdemes figyelmet fordítani erre a hitelesítő rendszerre. Ezek ellenőrzését a yum csomagkezelő látja el.
Természetesen nem csak a disztribútor saját tárolóit használhatjuk, léteznek más külső cégek vagy csapatok által készített csomagok és tárolók is. (3rd party repository) Ezek használatával viszont jó óvatos lenni. Érdemes tájékozódni a megbízhatóságukról mielőtt elérhetővé tesszük őket. Természetesen ezen tárolók esetén is van lehetőség a hitelesítés alkalmazására. A tárolókon kívüli "kósza" csomagoktól én óvva intenék mindenkit, ahogy a forrásból telepítésétől is. Ezeket a módszereket csak legvégső esetben javaslom, akkor ha már minden más lehetőség kifulladt.

Csomagkezelők
Mivel egy terjesztés általában nagyszámú telepített és elérhető csomagból áll (több ezer vagy akár több tízezer) így szükséges néhány segédprogramot használni a csomagok kezeléséhez. Az .rpm csomagokhoz a Red Hat készített egy azok kezelésére alkalmas programot is, melyet nemes egyszerűséggel rpm-nek nevezett el. Ez egy kiváló konzolos program, mely számos funkciót képes ellátni, de nem mindet! Ezen hiányosságok kiküszöbölésére készültek más csomagkezelő alkalmazások, mint a Red Hat alapú rendszerekben oly népszerű yum, vagy ennek grafikus előtét programjai. A yum egyik legnépszerűbb grafikus kiegészítője a Yum Extender vagy yumex, melyet elég rugalmasnak terveztek ahhoz, hogy további funkciókat lehessen könnyen beleépíteni. Így már minden felmerülő igényre megtalálhatóak a megfelelő eszközök. Egészen bámulatos trükkök is kivitelezhetőek ezekkel a programokkal és kiterjesztésiekkel.

A Yum Extender

A Yum Extender

Ennyit bevezetőnek erről az izgalmas témáról. Reményeink szerint a későbbiekben mélyebben beáshatjuk magunkat az itt csak kutyafuttában említett területekbe.