Pacman csomagkezelő
A Pacman csomagkezelő az Arch Linux C programnyelven írt, parancssoros (CLI) csomag- és frissítéskezelő rendszere. Segítségével a felhasználónak lehetősége van csomagok telepítésére a hivatalos Arch Linux tárolókból, valamint a felhasználó által helyben, forráskódból lefordított és elkészített csomagok telepítésére, továbbá a rendszer frissítésére. Az Arch Linux rendszeren túl, szintén alap csomagkezelőként működik az Arch-alapú rendszereken is (pl. Manjaro Linux, Arco Linux[1]).
Szerver-kliens felépítésének köszönhetően képes a rendszer csomagkészletét a hivatalos tárolókkal szinkronizálni, így a csomagadatbázisa mindig naprakészen tartható. A csomagok formátuma alapértelmezetten.pkg.tar.zst
,[2] de a makepkg
eszközzel készített saját csomagok más tömörítési eljárást is használhatnak. A tárolókból történő telepítésük esetén azok függőségeit is megkeresi és a csomaggal együtt telepíti.
Használatához root jogosultság (su) vagy emelt szintű felhasználói jogosultság (sudo) szükséges!
Funkciói, lehetőségei
[szerkesztés]- a letöltés és az adatbázis elérés gyorsítása
- szinkronizálás és frissítés
- csomagok keresése és csomaginformációk megjelenítése
- csomagok telepítése
- telepített csomagok eltávolítása
- takarítás
A letöltés és az adatbázis elérés gyorsítása
[szerkesztés]Lehetőségünk van arra, hogy sebesség szerint sorba állítsuk a csomagtárolókat, illetve, hogy az adatbázis elérésének sebességét optimalizáljuk, az alábbi parancsokkal:
- tárolók sebesség szerinti besorolása:
# pacman-mirrors -g
- az adatbázis elérési sebességének optimalizálása:
# pacman-optimize && sync
Szinkronizálás és frissítés
[szerkesztés]Lehetőségünk van rá, hogy csak az adatbázist szinkronizáljuk a szerverrel, illetve, hogy a szinkronizálás után a rendszerfrissítést is végrehajtsuk.
Adatbázis szinkronizálás
- adatbázis szinkronizálás:
# pacman -Sy
- adatbázis szinkronizálás kényszerítése:
# pacman -Syy
A szinkronizálás kényszerítése naprakész adatbázis esetén is működik, ez akkor hasznos, ha a felhasználó a tárolókkal kapcsolatban változtatott valamit és a változtatásokat kívánja érvényesíteni.
Rendszerfrissítés
A rendszerfrissítés egyetlen paranccsal történik, de ezzel együtt lehetséges a szinkronizálás végrehajtása is.
- csak rendszerfrissítés:
# pacman -Su
- szinkronizálás és frissítés:
# pacman -Syu
- szinkronizálás kényszerítése és frissítés:
# pacman -Syyu
Lehetséges a rendszerfrissítés végrehajtása a felhasználó által megjelölt csomagok kihagyásával is. Csomagok kihagyásához az /etc/pacman.conf fájlba kell a következő sort beírni (root jogosultság szükséges!):
IgnorePkg=csomagnév
Ha egy csomagcsoport frissítéseit kívánjuk figyelmen kívül hagyni, akkor az alábbi sort kell a fájlba beírni:
IgnorePkg=package_group
... ahol a package_group
helyére a csomagcsoport neve írandó!
Pl.: IgnorePkg=gnome
IgnorePkg=kde
Csomagok keresése és csomaginformációk megjelenítése
[szerkesztés]Lehetőségünk van csomagokat keresni a csomagnév megadásával. A kapott találati lista a tárolókban megtalálható csomagokat listázza, a rendszerre már korábban telepített csomagoknál a neve után zárójelben a 'telepítve' (angolul 'installed') megjelölés látható.
- csomag(ok) keresése
# pacman -Ss csomagnév
Egyszerre több csomagra is rákereshetünk, a csomagok neveit egymás után, szóközzel elválasztva beírva:
# pacman -Ss csomagnév1 csomagnév2 csomagnév3
Lehetséges a rendszerre már telepített csomagok kilistázása is a
# pacman -Q
paranccsal.
Itt információkat kaphatunk a már telepített csomagról, illetve részletes információkat is megjeleníthetünk róla, valamint a hozzá tartozó fájlokat is kilistázhatjuk.
- információ a telepített csomagról:
# pacman -Qs csomagnév
- részletes adatok a csomagról:
# pacman -Si csomagnév
- változások összefoglalása:
# pacman -Qi csomagnév
- változások idejének megjelenítése és a backup fájlok megjelenítése:
# pacman -Qii csomagnév
A csomaghoz tartozó fáljokat a
# pacman -Qo /file_path
paranccsal tudjuk megjeleníteni.
A csomaghoz tartozó függőségeket a
pactree csomagnév
parancs listázza.
A rendszeren található elárvult csomagok megjelenítéséhez pedig az alábbi parancs szükséges:
# pacman -Qdt
A telepített csomagok listájának lekérdezése és lementése előtt célszerű időnként biztonsági mentést csinálni a pacman által telepített csomagokról. Így egy rendszerösszeomlás esetén a pacman segítségével egyszerűen újratelepíthetjük ugyanazon csomagokat.
Először készítsünk egy biztonsági mentést a meglévő csomaglistánkról (célszerű egy külső eszközre ezt megtenni):
# pacman -Qqe > pkglist
Ezután az új rendszeren másoljuk fel ezt a pkglist állományt a gépre és lépjünk be abba a könyvtárba, ahova tettük, majd adjuk ki az alábbi parancsot a csomaglista visszatöltéséhez:
# pacman -S $(cat pkglist)
Csomagok telepítése
[szerkesztés]Csomagok telepítése
Egy vagy több csomag telepítése előtt szinkronizáljuk a helyi csomagadatbázist a tárolóval.
# pacman -Sy
Lehetőségünk van az adatbázis frissítésére és a csomag telepítésére egyszerre is:
# pacman -Sy csomagnév
Csomag frissítése vagy telepítése (minden függőségével együtt) az alábbi paranccsal történik:
# pacman -S csomagnév
Lehetséges egyszerre több csomag telepítése is. Ilyenkor a csomagok neveit egymás után, szóközzel elválasztva írjuk be.
# pacman -S csomagnév1 csomagnév2 csomagnév3
Ha olyan csomagot kívánunk telepíteni, ami más tárolóban található, mint ami az /etc/pacman.conf fájlban be van állítva, akkor a csomag neve előtt meg kell adnunk a tároló nevét, ahonnan telepíteni kívánunk, ellenkező esetben a konfigurációs fájlban beállított tárolóban szereplő csomag élvez elsőbbséget s az kerül telepítésre.
# pacman -S testing/csomagnév
Csomagok telepítése csoportként
Lehetséges csomagok telepítése csoportként is (pl. a gnome vagy a kde), ilyenkor a csoportban szereplő összes csomag egyszerre telepíthető.
# pacman -S csomagnév
A parancs kiadása után a pacman megjeleníti a csoportban található összes telepíthető csomagot egy sorszámozott listaként, majd a lista végén kéri, hogy adjuk meg a csoportból telepítendő csomagok sorszámát. Alapértelmezetten az összes csomag ki van jelölve s ha szám beírása nélkül nyomunk Entert, akkor az összes csomag települ.
Enter a selection (default=all):
Lehetőségünk van arra, hogy csak adott csomagokat telepítsünk a listából vagy megadottakat kizárjunk a telepítésből.
Például csak az 1-től 8-ig szereplő csomagokat kívánjuk telepíteni és a 11-est:
Enter a selection (default=all): 1-8 11
Illetve az 5-től 9-ig szereplő csomagokat szeretnénk kizárni és a 2-est telepíteni:
Enter a selection (default=all): ^ 5-8 ^ 2
Az adott csoportba tartozó csomagokat külön is ki tudjuk listázni a
# pacman -Sg csomagnév
paranccsal.
Csomag letöltése telepítés nélkül
Lehetséges, hogy az adott csomagot csak letöltsük a tárolóból, de ne telepítsük. Ehhez adjuk ki az alábbi parancsot:
# pacman -Sw csomagnév
Helyi vagy előzőleg letöltött csomag telepítése
A felhasználó által forráskódból lefordított és elkészített csomag (helyi csomag) telepítése az alábbi paranccsal történik:
# pacman -U /csomag elérési útja/csomag név.pkg.tar.zst
Például:
# pacman -U /home/user/Asztal/valami-5.1.8.pkg.tar.zst
Ekkor a csomagkezelő az Asztalon található valami-5.1.8.pkg.tar.zst csomagot fogja telepíteni.
Ha pedig az adott csomagot az interneten található helyről kívánjuk telepíteni, akkor elérési útnak az adott oldal webcíme is megadható.
# pacman -U http://valamicsomag/repo/valami-5.1.8.pkg.tar.zst
Ekkor az adott oldalról fogja az adott csomagot letölteni és telepíteni a csomagkezelő.
Lehetőségünk van az összes csomag újratelepítésére is a rendszeren az alábbi paranccsal:
# pacman -S $(pacman -Qq | grep -v "$(pacman -Qmq)")
Telepített csomagok eltávolítása
[szerkesztés]Eltávolíthatunk egy csomagot úgyis, ha a függőségeit megtartjuk:
# pacman -R csomagnév
Illetve lehetséges a csomag eltávolítása úgyis, hogy a más csomagok által nem megkövetelt függőségeit is eltávolítjuk:
# pacman -Rs csomagnév
Ha az összes függőségével együtt kívánjuk eltávolítani az adott csomagot, az alábbi paranccsal tehetjük meg:
# pacman -Rsc csomagnév
Figyelem! Ez a művelet rekurzívan működik és óvatosan alkalmazandó, mivel sok potenciálisan szükséges csomagot eltávolíthat, amikre más csomagoknak szüksége lehet!
Ha a csomaggal együtt csak annak helyi konfigurációs fájljait kívánjuk eltávolítani, akkor a parancs a következő:
# pacman -Rn csomagnév
Arra is lehetőségünk van, hogy a más csomagok által nem megkövetelt függőségeit és a helyi konfigurációs fájljait is eltávolítsuk az adott csomagnak (ez lényegében a teljes törlése az adott csomagnak).
# pacman -Rns csomagnév
Ha egy olyan csomagot akarunk eltávolítani, ami másik csomag számára szükséges (annak függősége), anélkül, hogy azt az adott csomagot eltávolítanánk, akkor az alábbi paranccsal tehetjük meg:
# pacman -Rdd csomagnév
Figyelem! Ezt a megoldást lehetőleg kerüljük, mivel ezzel súlyos károkat okozhatunk a rendszerben, ami rendszerösszeomláshoz is vezethet!
Takarítás
[szerkesztés]Az eltávolított csomagokat, valamint az összes csomagot is törölhetjük az átmeneti tárolóból (cache).
- eltávolított csomagok törlése
# pacman -Sc
- az összes csomag törlése
# pacman -Scc
A más csomagok által nem használt csomagokat (egyik csomagnak sem függőségei) elárvult (orphaned) csomagoknak nevezzük s lehetőségünk van ezeknek az eltávolítására is a
# pacman -Rsn $(pacman -Qdtq)
paranccsal.
A pacman konfigurálása
[szerkesztés]A program beállításai az /etc/pacman.conf fájlban találhatóak, amelynek szerkesztéséhez root jogosultság szükséges. Itt tudjuk megadni az általunk használni kívánt tárolókat, azokat aktiválhatjuk vagy inaktiválhatjuk, illetve egyéb tárolókat is hozzáadhatunk a rendszerhez (ezen egyéb tárolók az AUR – Arch User Repository számára szükségesek). Az inaktiválni kívánt tároló bejegyzése elé # karaktert kell írni, így azt a rendszer nem veszi figyelembe.
Például:
[core]
Include = /etc/pacman.d/mirrorlist
Itt a core tároló be van kapcsolva, tehát a rendszer használja.
#[testing]
#Include = /etc/pacman.d/mirrorlist
Itt pedig a testing tároló ki van kapcsolva, tehát a rendszer nem használja.
Az AUR számára szükséges egyéb tárolókat a fájl végén lévő szekcióban tudjuk megadni.
Például:
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
Minden hivatalos tároló az /etc/pacman.d/mirrorlist fájlban megadott szerverlistát használja, amely fájl tartalmaz egy '$repo' változót is. Célszerű ezt a listát is karbantartani!
Miután megváltoztattuk a tárolókat az /etc/pacman.conf fájlban és elmentettük a fájlt, utána mindenképpen szükséges a csomagadatbázisok szinkronizálása a
# pacman -Sy
vagy a # pacman -Syy
paranccsal!
Grafikus előtétprogramok a pacman-hez
[szerkesztés]Léteznek grafikus felületű előtétprogramok (GUI) a pacman-hez, amelyek jelentősen megkönnyítik a felhasználó munkáját. Felületükön minden művelet és beállítás könnyedén, egér használatával elvégezhető.
Ilyen programok:
Megjegyzések
[szerkesztés]A cikk során megjelenített pacman parancsok root jogosultsággal kiadott parancsként lettek feltüntetve! Az emelt szintű felhasználói jogosultsággal való használat esetén a parancsok elé a sudo parancs megadása szükséges!
Jegyzetek
[szerkesztés]- ↑ Az Arco Linux hivatalos weboldala. (Hozzáférés: 2019. november 15.)
- ↑ Arch Linux - News: Now using Zstandard instead of xz for package compression (angol nyelven). www.archlinux.org. (Hozzáférés: 2020. augusztus 2.)
- ↑ Octopi hivatalos weboldala. (Hozzáférés: 2019. november 5.)
- ↑ tkPacman hivatalos fejlesztői oldala a Sourceforge.net oldalon. (Hozzáférés: 2019. november 5.)