A csomagkezelés elmélete

kami911 képe

Ez a szakasz megpróbálja elmagyarázni hogyan működik, és milyen előnyöket hoz Önnek. Egy kicsit hosszú lesz, de remélhetőleg jó áttekintést ad a csomagkezelés filozófiájáról és hogy ez miért is számít Jó Dolog-nak (ezt a kifejezést a Linux felhasználók gyakran írják nagy kezdőbetűkkel, ha valami egyértelműen jó). Ha sietős a dolga, átugorhatja a következő szakaszt, hogy megtudhassa, miként is működik valójában a csomagkezelő rendszer.

Sokféle probléma lehet abból, ha szoftverfejlesztők weboldalait böngésszük és az ő szoftvereiket telepítjük:

  • Nehéz vagy lehetetlen kitalálni, hogy a szoftvert tesztelték-e, s működik-e az operációs rendszerünkkel
  • Nehéz vagy lehetetlen megtudni, hogy ez a szoftver hogyan működik együtt a rendszerünkön lévő többi szoftverrel
  • Nehéz vagy lehetetlen megtudni, hogy egy ismeretlen fejlesztő szoftverében bízhatunk-e, vajon nem fog véletlenül vagy szándékosan kárt okozni a rendszerünkben. Még ha ismerünk is egy bizonyos szoftvert vagy a fejlesztőjét. nem lehetünk egészen biztosak benne, hogy a letöltött futtatható állományokat nem cserélte le valamilyen harmadik fél vagy kártevő program.

További probléma a sokféle, sok helyről letöltött szoftverekkel, hogy nincs közös kezelői infrastruktúra. Mielőtt azt mondja, hogy „nagy dolog”, gondolja végig, hogyan fogja ezeket frissíteni? Ha egy program már nem kell, honnan tudja majd, hogyan kell letörölni? Talán a kérdéses programnak nincs is eltávolítási funkciója. De ha van is, sok esetben nem lehet teljesen és tisztán törölni őket.

Máshonnan nézve: Amikor annak a programnak a telepítőjét elindította, valamilyen szinten feladta a számítógépének felügyeletét egy teljesen idegen kedvéért.

Végezetül az ilyen módon terjesztett szoftverek szükségszerűen „statikusak”. Ez az jelenti, hogy Önnek nem csak a programot kell letöltenie, hanem a futtatáshoz szükséges programkönyvtárakat is. Mivel a harmadik fél által készített szoftver fejlesztője nem tudja, hogy az Ön rendszerén mely programkönyvtárak vannak már telepítve, az egyetlen módja, hogy garantálja az általa készített program futtathatóságát, ha a program futtatásához szükséges összes programkönyvtárat mellékeli a programhoz. Ez a gyakorlatban nagyobb nagyobb letöltéseket, illetve azt is jelenti, hogy ha a megadott programkönyvtár frissítésre szorul akkor az összes – programkönyvtárat használó – programnál külön-külön frissíteni kell ahelyett, hogy csak egyszer kellene frissíteni. Összegezve a statikus programok terjesztése sok szükségtelen többletmunkát okoz.

A Linux Mint és a GNU/Linux operációs rendszerek csomagkezelése, már rég óta jól működő és javasolt eljárás a szoftverkezelés feladatok ellátására és mentes a fenti problémáktól Segítségével az 1990-es évek elejétől mindannyian biztonságosan és automatikusan telepíthetjük szoftvereinket.

A szoftvert elsőként a fejlesztő írja, ahogy az sejthető volt. A termelési lánc ezen végét „upstream”-nek hívják. Linux disztribúció felhasználójaként úgy említik Önt, hogy a legtávolabbi pont, azaz "downstream" (kivéve, ha Ön egy rendszergazda, mely esetben az Ön felhasználói a legtávolabbi pont, azaz a „downstream”, de akkor ezt tudja, hiszen Ön a rendszergazda). Miután a fejlesztő elégedett a programmal vagy a frissít egy programot, amelyet mások írtak, kiadják a forráskódokat. Emellett a fejlesztők leírják a dokumentációban, hogy milyen programkönyvtárakra és egyéb eszközökre van szükség a program használatához és fejlesztéséhez. Ők már ezt jó ideje ezzel foglalkoznak, és mindezt szabványosított és elfogadott módon teszik. Ne feledje, hogy néhány kivételtől eltekintve (általában hardvergyártók, akik eszközmeghajtókat készítenek Linuxra, mint az NVIDIA, vagy az ATI, esetleg bizonyos nagyvállalatok, mint az Adobe, amelyekben megbízhatunk) kiadják a programok tényleges forráskódját. Ez a forráskód, a program ember által olvasható formában megadott utasítások listája. A forráskód kiadásának számos kedvező következménye van, de ami most a legfontosabb számunkra, hogy a szoftvert bárki és mindenki szakértői szemmel megvizsgálhatja egy Internet kapcsolat birtokában. Ez borzasztóan nehézzé teszi besurranó kártékony kódok beépítését a programba, hiszen mindenki látja, amit a program fejlesztője írt!

A szoftver így eljut a csomag karbantartóihoz, akik lehetnek a Linux disztribúciónál dolgozó önkéntesek vagy fizetett alkalmazottak. Az ő felelősségük, hogy a szoftver forráskódját lefordítsák, futtatható programot készítsenek belőle, majd ezek után tesztelik disztribúción, hogy megbizonyosodjanak működőképességéről, megoldják a felmerülő problémákat és végül elkészítsék a kényelmes formátumban a lefordított programok csomagjait (számítógép által olvasható formátumban). Ez a csomag tartalmaz futtatható programokat, ezek konfigurációs állományait, és a csomagkezelő szoftver számára telepítési utasításokat. Megjegyezendő, hogy nem tartalmaz statikus programkönyvtárakat – hiszen nincsen rájuk szükség – mert a programkönyvtárak más csomagból kerülnek telepítésre. Ezeket közös programkönyvtáraknak nevezzük. A csomagkezelő szoftver tudni fogja, hogy mely csomag telepítéséhez, milyen további csomagok előre telepítése szükségeltetik (mint egy közös programkönyvtár), mert a szoftver számára szükséges programkönyvtárak és szükséges csomagokat a szoftverkészítő megadja, így ez az információ belekerül a csomagba is. Ez a leírás kellőképpen részletes – a kompatibilitás érdekében – megadja a telepítendő csomagok kívánt verzióit is. Az elkészült csomag felkerül egy különleges fájlkiszolgálóra, amelyet csomagtárolónak neveznek.

Ez az egyetlen hely ahonnan – igény szerint – le tud tölteni és fel tud telepíteni szoftvereket. Biztos lehet benne, hogy ez a hely megbízható, hiszen tanúsítvánnyal igazolja megfelelőségét, amelyet a csomagkezelő ellenőrizni fog. Továbbá minden egyes telepítendő csomag biztonságáról is meggyőződhet, mert minden csomag GPG kulccsal van aláírva, amelyet a csomagkezelő szintén ellenőriz. A csomagkezelő ezen felül ellenőrzi a csomagok MD5 ellenőrzőösszegét is, hogy megbizonyosodjon róla, hogy a csomag nem sérült meg letöltés közben, ahogy azt Ön is tette nem sokkal a LiveDVD lemezképfájllal. Nézze csak, hogy mit is jelent ez valójában az Ön számára. Csak dőljön hátra kedvenc italát kortyolgatva és a #linuxmint csatornán csevegve az xchat alkalmazásban. A csomagkezelő letölti a kiválasztott csomagokat, majd az előre megadott utasítások szerint tökéletesen telepíti a megadott szoftvert minden függőségével együtt, a megfelelő sorrendben. Nincs lehetőség emberi hibára – ha a csomag működött a csomag karbantartójának számítógépén, működni fog az Ön számítógépén is – mert a csomagkezelő ugyanazt a jól meghatározott telepítési procedúrát követi.

Amikor eljön az ideje a szoftverek frissítéseinek ellenőrzésének, a csomagkezelő automatikusan ellenőrzi a szoftververziókat és frissíti a csomagokat a rendszer biztonsága és a simább futása érdekében. Amennyiben a a „Legjobbproggi” 2.4-es verziója  feltöltésre került a csomagtárolóba és Önnek a 2.3-as verzió van meg, akkor a csomagkezelő össze fogja ezeket verziókat hasonlítani és felkínálja a legújabb verzió telepítésének lehetőségét – ügyelve a függőségek kezelésére.

Eddig jól hangzik? Még ennél is jobb lesz!

Az emberek hibázhatnak, ahol a számítógépek nem és időről-időre előjöhet valami hiba ebben a folyamatban. Például ha véletlenül nem megfelelő hardverhez telepít eszközmeghajtókat és az elront valamit a rendszeren. Mindannyiunkkal előfordulhat. Vagy talán valamilyen okból van egy hiba, vagy a kedvenc szolgáltatását eltávolította a program fejlesztője. Ezek a problémák paradox módon bizonyítják azt az erőt és a biztonságot, amelyet a  csomagkezelés nyújt. Mivel a csomagkezelő részletes nyilvántartást vezet a számítógépen végrehajtott valamennyi változtatásról, képes tökéletesen és teljesen eltávolítani a feltelepített szoftvereket. Ez a megoldás garantálja, hogy egy csomag eltávolítása nem fogja tönkretenni a többiek működését. Ugyanígy meghatározhatja, hogy a megadott csomagokat ne frissítse a csomagkezelő, mert Ön szerint a jelenlegi helyzet megfelelő, vagy mert visszatért a telepített szoftver egy előző verziójára. Végül, az egész folyamat nagyon erősen lektorált. Mivel Ön tagjává vált Linux felhasználók egyik nagy közösségének, ahol mindenki a szoftverek beszerzéséhez azonos csomagtárolókat használ. Ha bármi probléma lépne fel, biztos lehet benne, hogy hamar nagy felhajtás lesz körülötte, és a problémát gyorsan megoldják. ilyen módon a szoftver terjesztés a GNU/Linux disztribúciókban a bizalmon alapul, attól kezdve, hogy a program eredeti fejlesztője mindenki számára láthatóan közzéteszi a forráskódot, egészen a disztribúció weboldalán folytatott nyitott párbeszédig. Nem csak a szigorú biztonsági előírások miatt bízhat meg az Ön által letöltött szoftverben, hanem mert ha valami rosszul sül el, akkor arról mindenki beszélni fog.

Tekintsük át ismét a listát és nézzük meg milyen problémákat kerülhetünk el:

Probléma:

  • Nehéz vagy lehetetlen megállapítani, hogy melyik szoftvert melyik operációs rendszeren tesztelték.

Megoldás:

  • Biztos lehet benne, hogy a csomagtárolóból kizárólag – a csomag karbantartója és a tesztelőcsapat által – alaposan tesztelt csomagok érhetők el, amelyek működni fognak az operációs rendszerével. Ők elvből nem akarják, hogy valami hiba legyen, de azért sem, mert ha valami rossz lenne, akkor hirtelen nagyon sok levelet kapnának.

Probléma:

  • Nehéz illetve lehetetlen megmondani, hogy ez a szoftver, hogyan fog együttműködni a rendszerére már telepített szoftverekkel.

Megoldás:

  • A csomagok karbantartói mindent megtesznek azért, hogy a disztribúcióhoz ajánlott csomagok  ne ütközzenek egymással. Természetesen a tesztelők nem feltétlenül telepítik az összes ajánlott csomagot a teszteléshez használt gépre (valójában a csomag karbantartói a csomagjaikat egy újonnan telepített gépen fordítják le, így biztosítva hogy szabványos a rendszerük), de ha a felhasználói csoport valamely tagja problémába ütközik, a fejlesztői csapatot értesíti a problémáról és azonnal javítják vagy legalább elkezdenek dolgozni a javításon. Ha Ön nem beta tesztelő, nem valószínű hogy valaha ilyen csomag-ütközéssel találkozni fog, hiszen a beta-tesztelés egyik lényege, hogy ezeket a problémákat kiküszöbölik.

Probléma:

  • Nehéz vagy lehetetlen megtudni, hogy bízhat-e abban, hogy egy fejlesztő szoftvere nem okoz kárt, akár szándékosan, akár gondatlanságból.

Megoldás:

  • A csomag karbantartója aligha csomagol be olyan csomagot, amelyről tudja, hogy elrontja a felhasználók számítógépét, beleértve a saját gépét is. Csak az ismert és megbízható szoftverek kerülnek be a csomagtárolóba.

Probléma:

  • Még ha ismeri is az adott szoftvert vagy a fejlesztőjét, nem lehet teljesen biztos benne, hogy egy olyan végrehajtható fájlt tölt le, amit nem cserélt ki egy rosszindulatú harmadik fél egy kártékony programra.

Megoldás:

  • Amellett, hogy a szokásos biztonsági intézkedéseket vezetnek be a saját szerverrel rendelkező intézmények (általában neves akadémiai vagy kutatóintézetek, vagy nagy cégek), a csomagtárolók és a csomagok maguk is tanúsítványokkal és GPG kulcsokkal hitelesítettek. Ha valami nem megfelelő, akkor a csomagkezelő ezt jelezni fogja. E leírás szerzője, tíz év Linux használat alatt nem találkozott ilyen jellegű hibával.

Probléma:

  • Nehézkes minden telepített programot (és azok minden nyomát) eltávolítani.

Megoldás:

  • Mivel a csomagkezelő program képes az összes tevékenységét rögzíteni, képes arra is, hogy visszavonja a korábbi lépéseket, ezzel biztosítva, hogy egy csomag törlése nem okoz hibát más csomagok működésében.

Probléma:

  • A statikus csomagok nagy méretűek és elavultak.

Megoldás:

  • Mivel csomagkezelőt használ, ezért statikus programkönyvtárakat csak akkor kell letöltenie, ha nincsenek elkészített közös programkönyvtárak. Ha a megadott program telepítéséhez új közös programkönyvtárak telepítése válik szükségessé, akkor a csomagkezelő ez tudni fogja, és automatikusan telepíti az érintett csomagokat. Önnek csak egyszer kell letöltenie a közös programkönyvtárakat, mert az összes azt használó program ugyanazokat a programkönyvtárakat fogja használni. Ha végezetül eltávolítja az összes – a közös programkönyvtárakat használó – programot, akkor a csomagkezelő program eltávolítja a már nem használt közös programkönyvtárakat is. Abban az esetben ha – például későbbi felhasználás céljából – meg kívánja tartani a közös programkönyvtárat utasíthatja a csomagkezelőt, hogy ne távolítsa el azt.

Még mindig nem győződött meg?

Nagyszerű! Üzenjen a fórumunkba, ha Önnek eredeti kifogásai vannak a csomagkezeléssel kapcsolatban, vagy megismerné mások tapasztalatait. Érdemes megismételni, hogy a GNU/Linux disztribúcióban a csomagterjesztés alapja a bizalom, ha bármilyen problémát tapasztal, kérjük tudassa velünk!

Végszó: Olyan pletykákat hallhat, amelyekben azt mondják, hogy a Linux még nem készült el, nincs befejezve. Vagy olyanokat, ahol azt mondják aki Linuxot használt az egy béta tesztelő. Esetleg azt állítják a Linux nem stabilt. Ezek féligazságok. A „Linux” soha nem lesz „befejezve”, ahogyan a többi operációs rendszerből sem adják ki a „végleg elkészült” változatot. A Linux rendszemagtól a képernyőn megjelenő grafikáig, minden összetevő az operációs rendszerben folyamatosan fejlődik. Ez azért van mert a programozók keményen dolgoznak azon, hogy friss megoldásokkal lássanak el minket és lépést tartsanak a programozásban és hardvertechnológiákban megjelenő újdonságokkal. Ez nem azt jelenti, hogy az Ön számára elérhető szoftver rossz minőségű. A Linux Mint magját képező alaprendszer több mint 20 év fejlesztés munkáját hordozza magában és nagyon kiforrott, stabil és megbízható. Miközben az Ön operációs rendszerén legtöbb szoftverből vannak kimondottan instabil kiadások, Ön nem ezeket használja, mert Ön nem béta tesztelő. Ön ha ezeket a sorokat olvassa, akkor tudhatja hogy nem béta tesztelő. Az Ön számára csomagtárolókon keresztül elérhetővé tett szoftverek mindig stabilak és alapos tesztelésnek vetettük őket alá, mindaddig, amíg nem állítja át rendszerét kiszolgáló csomagtárolókat a tesztelők által használt csomagtárolókra. Ha mégis ezt tenné, Ön tesztelővé válik.

Egy példán keresztül bemutatva: Amikor a Linux Mint-ben telepíti az Opera, a Real Player vagy a Google Earth programokat, ezek a programok nem közvetlenül az eredeti fejlesztőtől (Opera, Real, Google) érkeznek. Természetesen a fejlesztőktől érkeznek ezek a programok, de csak azután, hogy helyesen csomagolásra majd tesztelésre kerültek. Másképpen fogalmazva Önnek soha nem kell az internetet böngészve felkutatni a programokat, hanem minden, amire számítógépén szüksége van, elérhető és tesztelésre került a Linux Mint és az Ubuntu csapatai által.

A Linux Mint automatikusan frissíti önmagát a Frissítéskezelő segítségével. Ez az eszköz csak az alap operációs rendszert frissíti, hanem az összes – számítógépére – telepített szoftvert is.

Ilyen egyszerű! Mit szól hozzá?

Néhány népszerű alkalmazás, amik alapértelmezetten nincsenek telepítve Linux Mintre: Opera, Skype, Acrobat Reader, Google Earth és Real Player.