2008. október 26., vasárnap

dpkg

A dpkg a Debian GNU/Linux csomagjainak installálására, eltávolítására, építésére és menedzselésére alkalmas csomagkezelő. Kérhetünk információkat a csomagokról. Egy csomagnak több státusza lehet:

* installed - feltelepített és konfigurált csomag,
* half-installed - a csomag telepítése el lett kezdve, de valami miatt nincs tökéletesen feltelepítve,
* not-installed - a csomag nincs feltelepítve a rendszerre,
* unpacked - a csomag fel van telepítve, de nincs konfigurálva,
* half-configured - a csomag fel van telepítve, de nincs teljesen konfigurálva,
* config-files - a csomag már nincs a rendszeren, csak a konfigurációs fájljai vannak meg.

Egy csomag kiválasztásának három státusza lehet:

* install - kiválasztva telepítésre,
* deinstall - kiválasztva törlésre,
* purge - minden része kiválasztva törlésre, még a konfigurációs fájlok is.

(Ugyanis a ,,deinstall'' nem távolítja el a csomaghoz tartozó konfigurációs fájlokat.)

Egy csomagnak két jelzője lehet:

* hold - nem változtat a csomagkezelő az így megjelölt csomag állapotán,
* reinst-required - a csomag meg van sérülve, de nincs eltávolítva, ezért szükséges újratelepíteni.

A dpkg opciói közül csak az általam leggyakrabban használtakat sorolom fel, mert nagyon sok van közülük, és csak speciális esetekben használok ezeken kívül más opciókat:

-i | -install csomag_teljes_neve...
telepíti a csomag_neve csomagot;
-unpack csomag_teljes_neve...
telepíti a csomag_teljes_neve csomagot, de nem konfigurálja;
-configure csomag_neve...| -a | -pending
konfigurálja a telepített csomag_neve csomagot. Ha a -a vagy -pending opciót is használjuk, akkor minden telepített, de nem konfigurált csomagot konfigurálni fog.
-r | -remove | -purge csomag_neve...| -a | -pending
eltávolítja a csomag_neve csomagot. A -r vagy -remove eltávolítja a csomag minden fájlját, kivéve a konfigurációs fájlokat. Ezzel elkerülhetjük azt, hogy amikor újratelepítjük a csomagot, akkor újra kelljen konfigurálnunk. Így simán visszakaphatjuk a régi beállításainkat. Ha a konfigurációs fájlokat is el akarjuk távolítani, akkor a -purge opciót kell használnunk. Ha a -a vagy -pending opciót is használjuk, akkor egy csomag neve helyett minden csomag nevét megkapja ami telepítve van, és a jelzője törlésre vagy eltávolításra van kijelölve a /var/lib/dkpg/status fájl alapján.
-print-avail csomag_neve
kiírja a képernyőre a csomag_neve csomagról elérhető összes információt, a /var/lib/dpkg/available fájl alapján (felhasználóként is működik);
-l | -list csomag_neve
kiírja a képernyőre a csomag_neve csomagról elérhető szűkebb információkat, a /var/lib/dpkg/available fájl alapján. Használhatjuk a normál shell helyettesítőkaraktereit is (felhasználóként is működik).
-L | -listfiles csomag_neve...
kilistázza a képernyőre a telepített csomag_neve csomag összes fájlját, a fájlrendszeren lévő elérési helyükkel (felhasználóként is működik);
-S | -search fájlnév
megadhatunk bármilyen fájlnevet, és a dpkg megmondja, hogy melyik csomaghoz tartozik az adott fájl (felhasználóként is működik);
-help
kiírja a képernyőre az opciókat és a hozzájuk tartozó rövid magyarázatot (felhasználóként is működik);
-force-help
kiírja a képernyőre a -force kapcsoló opcióit és a hozzájuk tartozó rövid magyarázatot (felhasználóként is működik);
-R | -recursive
rekurzívan végrehajtja a vele ,,párosított'' parancsot minden fájlra, amire ráillik a *.deb meghatározás. Használhatjuk ezt az opciót a -i, a -A, a -install, a -unpack és a -avail opciókkal együtt.

Egy csomag telepítésének dpkg által végrehajtott lépései:

* kicsomagolja az új csomag ellenőrző fájljait;
* ha a csomagnak már fel van telepítve egy másik (régebbi) változata, akkor mielőtt elkezdené az új csomag telepítését, végrehajtja a régi csomag prerm scriptjét;
* lefuttatja az új csomag preinst scriptjét, ha szükséges a csomagnak;
* kicsomagolja az új fájlokat, és erre az időre elmenti a régi fájlokat, hogy ha valami hiba történne, akkor vissza tudja állítani a régi állapotot;
* ha a csomagnak már fel van telepítve egy másik (régebbi) változata, akkor mielőtt elkezdené az új csomag telepítését, végrehajtja a régi csomag postrm scriptjét, ami a lefutása után elindítja az új csomag preinst scriptjét, mert az új fájlok felülírják a régieket;
* konfigurálja a csomagot.

Egy csomag konfigurálásának dpkg által végrehajtott lépései:

* kicsomagolja a konfigurációs fájlokat és erre az időre elmenti a régi fájlokat, hogy ha valami hiba történne, akkor vissza tudja állítani a régi állapotot;
* lefuttatja az új csomag postinst scriptjét, ha szükséges a csomagnak.

Egy csomag eltávolításának dpkg által végrehajtott lépései:

* lefuttatja a prerm scriptet,
* eltávolítja a telepített fájlokat,
* lefuttatja a postrm scriptet.

Nincsenek megjegyzések: