Pacman csomagkezelő

A Wikipédiából, a szabad enciklopédiából

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:

  • Octopi[3]
  • pamac-aur
  • tkPacman[4]

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]

  1. Az Arco Linux hivatalos weboldala. (Hozzáférés: 2019. november 15.)
  2. Arch Linux - News: Now using Zstandard instead of xz for package compression (angol nyelven). www.archlinux.org. (Hozzáférés: 2020. augusztus 2.)
  3. Octopi hivatalos weboldala. (Hozzáférés: 2019. november 5.)
  4. tkPacman hivatalos fejlesztői oldala a Sourceforge.net oldalon. (Hozzáférés: 2019. november 5.)

Források[szerkesztés]