Szerkesztő:Aldum/Aldum/UNIX/pacman

Csomagkezelés szerkesztés

Alapfogalmak szerkesztés

Csomag (package) szerkesztés

Egy csomag programok, programkönyvtárak és az installáláshoz, konfigurációhoz szükséges metaadatok összessége.

Függőség (dependency) szerkesztés

Egy adott csomag függőségei olyan további csomagok, amikre szükség van a működéséhez. Függőség lehet:

  • explicit (mindenképpen szükséges)
  • opcionális (csak egyes funkciók használatához van rá szükség, így a felhasználó eldöntheti, hogy telepíti-e)
  • rejtett (ilyen akkor fordul elő, ha a csomagkezelő rosszul van beállítva, és bizonyos többé vagy kevésbé opcionális függőségekről nem tud, a hiány hatására az adott program hibásan, vagy egyáltalán nem működik)

Csomagkezelő rendszer (package manager) szerkesztés

Az operációs rendszeren programcsomagok telepítését, frissítését, konfigurációját megkönnyítő-automatizáló softwareeszköz. Tágabb értelemben ide tartozhatnak különféle segédprogramok, amik függőségek, csomagközi viszonyok felderítésére, vagy csomaghoz tartozó file-ok, esetleg adott programot tartalmazó csomag keresésére használhatók. Disztribúciónként jelentősen eltérhet, hogy mi tartozik az alap csomagkezelőhöz, és mi kerül külön csomagba.

Például meg akarjuk keresni, hogy melyik csomaghoz tartozik az xeyes[1] demo:

  • Red Hat/Fedora/CentOS esetén
yum whatprovides xeyes
  • Debian/Ubuntu/ezekre alapuló rendszereknél
apt-file search xeyes

beépített paranccsal

  • Arch Linuxban
pkgfile xeyes
  • Gentoonál
pfl xeyes

segédprogramokkal tehetjük meg.

Ezen felül lehetnek még harmadik személy által írt wrapperek, amik további funkcionalitást biztosítanak, de kézzel kell telepíteni. (pl yaourt)

Repository szerkesztés

Központi csomagtároló adatbázis. A csomagkezelő egy vagy több ilyenből tölti le a csomaglistákat, csomagokat és metaadatokat. Ilyet üzemeltethetnek a disztribúció fejlesztői, de független is lehet.

Csomagformátumok szerkesztés

Bináris szerkesztés

Ez az általánosan elterjedt formátum, a csomag az adott architektúrára lefordított változatot tartalmazza.

deb szerkesztés

A Debian eredeti formátuma. Két esetleg tömörített tar file-t tartalmaz: a program adatait és a csomagkezelőnek szóló információk. Használat: Debian, Ubuntu, bármilyen ezekre épülő egyéb.

rpm szerkesztés

Linux Standard Base [2] formátum. Mivel ennek célja a disztribúciók közötti kompatibilitás, több, eredetileg különböző változat is ezt használja, teljesség igénye nélkül: Red Hat, Fedora, CentOS, Oracle Linux, Yellow Dog; OpenSUSE; Mandriva; MeeGo. Bizonyos korlátokkal a Debian-variánsok is képesek kezelni.

pkg.tar.xz szerkesztés

Arch Linux, forkjai, és néhány kisebb (Chakra, DeLi, Manjaro) -később átvett- formátuma.

Forráskód (source-based) szerkesztés

Az előzőtől eltérően itt a csomag a forráskódot tartalmazza, a telepítésnek része a teljes fordítás. Ma már kevéssé elterjedt, mert sokkal nehézkesebb, jóval hosszabb a bináris telepítésnél, és a sebességbeli előnyei is marginálisak. Forrásalapú disztribúciók: Gentoo, Gentoo-variánsok és forkok (pl Calculate), Sorcerer, Source Mage, Linux From Scratch (ez kivétel, mert itt az egész rendszert nulláról, forrásból építjük fel, és hagyományos értelemben vett csomagkezelője nincsen), BSD rendszerek.

ebuild szerkesztés

A Gentoo csomagkezelő, a Portage alapeleme. Hagyományos értelemben véve nem csomag, csak egy szöveges file, bash script, ami tartalmazza a forráskód és szükséges patchek címét, illetve konfigurációs információkat.

ABS szerkesztés

Arch Build System. Ugyan az Arch alapvetően bináris, tartozik hozzá egy ún. User Repository, amiben a csomagok forráskóddal és egy az ebuildhez hasonlo PKGBUILD[3] leíróval vannak tárolva, és egy makepkg nevú eszközzel alakíthatóak csomaggá, amit aztán a rendes csomagkezelő tud telepíteni. [4]

BSD Ports szerkesztés

Csomagkezelő feladatai, funkciói szerkesztés

szerkesztés

Ellenőrzés szerkesztés

  • Checksumok ellenőrzése, biztosítandó az adatok hibátlanságát
  • Csomagok digitális aláírásának ellenőrzése. Erre azért van szükség, hogy ne települjön kétes forrásból származó, esetleg hátsó kaput tartalmazó csomag.

Telepítés szerkesztés

Függőségek kezelése szerkesztés

A csomagok sokrétű és bonyolult függőségi viszonya az elsődleges ok, amiért szükség van csomagkezelőre. Ez különösen fontos dinamikusan linkelt könyvtárak esetén, amikből a különböző programoknak esetleg különböző verzióra lehet szüksége.

Frissítés szerkesztés

Ez általában két lépésben történik. Először a csomagkezelő frissíti a saját listáját, majd ellenőrzi, hogy a rendszerben a telepített csomagok verzióját.

Törlés szerkesztés

Itt is felmerülhet a függőségek kérdése. Ha valamit csak azért települt fel, mert egy másik csomagnak szüksége volt rá, és később ezt eltávolítjuk, "árva" csomagok keletkeznek a rendszerben. Ezek feltakarítása is a csomagkezelő feladata, bár ezt általában nem teszi meg automatikusan.

Csomagkeresés szerkesztés

A legtöbb esetben létezik erre egy kényelmesebb webes felület, vagy a csomagkezelőhöz tartozó grafikus felület, de a csomagkezelőnek képesnek kell lennie arra is, hogy a csomaglistákban, leírásokban keressen, listázza az elérhető verziókat

Konkrét csomagkezelők szerkesztés

Debian-variánsok szerkesztés

YUM szerkesztés

ZYpp szerkesztés

Pacman szerkesztés

Portage szerkesztés

Források szerkesztés