pacman (Magyar)
A pacman szoftvercsomag-kezelő az Arch Linux egyik legfőbb megkülönböztető jellemzője. Egyszerű bináris szoftvercsomag-formátumot ötvöz egy könnyen használható Arch build system rendszerrel. A pacman célja, hogy lehetővé tegye a szoftvercsomagok egyszerű kezelését, akár a hivatalos szoftvercsomag-tárolókból, akár a felhasználó saját összeállításaiból származnak.
A Pacman naprakészen tartja az operációs rendszert azáltal, hogy szinkronizálja a szoftvercsomag-listákat a fő szerverrel. Ez a szerver/kliens modell lehetővé teszi, hogy a felhasználó egyetlen egyszerű parancs segítségével letöltse és telepítse a szoftvercsomagokat, a szükséges szoftvercsomag-függőségekkel együtt.
A pacman C programozási nyelven íródott, és a szoftverek becsomagolásához a bsdtar(1) tar formátumot használja.
pacman -Ql pacman pacman-contrib | grep -E 'bin/.+' parancsot.Használat
Az alábbiak csupán egy kis mintát képviselnek azokból a műveletekből, amelyeket a pacman képes végrehajtani. További példákért tekintse meg a pacman(8) súgót.
Szoftvercsomagok telepítése
A szoftvercsomag valójában csak egy tömörített fájl ami a következőket tartalmazza:
- Az alkalmazás összes (forráskódból lefordított) fájlját.
- Az alkalmazás metaadatait, például az alkalmazás nevét, verzióját, szoftvercsomag-függőségeit stb.
- Feltelepítéshez szükséges fájlokat és utasításokat a pacman számára.
Az Arch szoftvercsomag-kezelője (tehát a pacman) képes telepíteni, frissíteni és eltávolítani ezeket a szoftvercsomagokat. A szoftvercsomagok használata (a szoftverek saját forráskódból történő lefordítása és telepítése helyett) számos előnnyel jár:
- Könnyen frissíthető: A pacman frissíti a meglévő szoftvercsomagokat, amint elérhetővé válnak a szoftverfrissítések.
- Szoftvercsomag-függőség ellenőrzése: A pacman Ön helyett kezeli a szoftvercsomag-függőségeket. Önnek csak meg kell mondania neki a szoftvercsomagot, és a pacman telepíti azt minden további szükséges kiegészítő szoftvercsomaggal együtt.
- Tiszta eltávolítás: A pacman nyilvántartja a szoftvercsomagban lévő összes fájlt. Ezáltal nem maradnak véletlenül sem a számítógépen fájlok, amikor úgy dönt, hogy eltávolít egy szoftvercsomagot.
- A szoftvercsomagok gyakran rendelkeznek választható szoftvercsomag-függőségekkel, amelyek olyan szoftvercsomagok, amelyek további funkcionalitást biztosítanak az alkalmazás számára, de nem feltétlenül szükségesek annak futtatásához. Egy szoftvercsomag telepítésekor a pacman felsorolja annak választható szoftvercsomag-függőségeit, azonban ezek nem jelennek meg a
pacman.logfájlban. Használja a #Querying package databases parancsot a szoftvercsomag választható függőségeinek a megtekintéséhez. - Ha olyan szoftvercsomagot telepít, amelyre kizárólag egy másik szoftvercsomag (választható) függőségeként van szüksége (azaz Ön közvetlenül nem igényli azt), akkor ajánlott a
--asdepskapcsoló használata. További részletekért tekintse meg a #Installation reason leírást.
pacman -Sy szoftvercsomagneve parancsot a pacman -Syu szoftvercsomagneve helyett, mivel ez szoftvercsomag-függőségi problémákhoz vezethet. Tekintse meg a System maintenance (Magyar)#Részleges frissítések nincsenek támogatva és BBS#89328 leírásokat.Konkrét szoftvercsomagok telepítése
Adja ki a következő parancsot egyetlen szoftvercsomag vagy szoftvercsomaglista, valamint a hozzájuk tartozó szoftvercsomag-függőségek telepítése érdekében:
# pacman -S szoftvercsomagnév1 szoftvercsomagnév2 ...
Szoftvercsomaglista telepítése reguláris kifejezés segítségével (tekintse meg ezt a fórumbejegyzést) :
# pacman -S $(pacman -Ssq szoftvercsomag_reguláris_kifejezés)
Előfordulhat, hogy egy szoftvercsomagnak több verziója is elérhető különböző szoftvercsomag-tárolókban (például az extra és az extra-testing szoftvercsomag-tárolók). Ebben az esetben, amennyiben Ön az extra szoftvercsomag-tárolóból szeretné telepíteni a szoftvercsomagot, akkor a szoftvercsomag-tároló nevét meg kell adni a szoftvercsomag neve előtt:
# pacman -S extra/szoftvercsomagnév
Hasonló mintázatot követő szoftvercsomagnevek telepítéséhez használható a kapcsos zárójelek kiterjesztése. Például:
# pacman -S plasma-{desktop,mediacenter,nm}
Ez tetszőleges számú szintre kiterjeszthető:
# pacman -S plasma-{workspace{,-wallpapers},pa}
Virtuális szoftvercsomagok
A virtuális szoftvercsomag egy speciális szoftvercsomag, amely önmagában nem létezik, hanem egy vagy több másik szoftvercsomag biztosítja. A virtuális szoftvercsomagok lehetővé teszik, hogy ha több lehetséges szoftvercsomagjelölt is van, akkor más szoftvercsomagok ne egy konkrét szoftvercsomagot nevezzenek meg szoftvercsomag-függőségként. A virtuális szoftvercsomagokat nem lehet a nevük alapján telepíteni. Ezek akkor kerülnek az Ön operációs rendszerére, amikor egy olyan szoftvercsomagot telepít, amely biztosítja a virtuális szoftvercsomagot. Példa erre a dbus-units szoftvercsomag.
pacman.conf fájlban szerepelnek, majd betűrendi sorrend szerint lesz rendezve, amennyiben ugyanabból a szoftvercsomag-tárolóból több találat is van.Szoftvercsomagcsoportok telepítése
Néhány szoftvercsomag olyan szoftvercsomagcsoporthoz tartozik, amelynek minden eleme egyszerre telepíthető. Például, amennyiben kiadja a következő parancsot:
# pacman -S gnome
A fenti parancsot futtatva Önt fel lesz szólítva, hogy válassza ki a gnome szoftvercsomagcsoportból azokat a szoftvercsomagokat, amelyeket telepíteni szeretne.
Előfordulhat, hogy egy szoftvercsomagcsoport nagy mennyiségű szoftvercsomagot tartalmaz, és Ön csak néhányat szeretne telepíteni, illetve kihagyni a telepítés folyamatából. Ahelyett, hogy az összes számot meg kellene adnia, kivéve azokat, amelyeket nem kíván telepíteni, gyakran kényelmesebb az alábbi szintaxis segítségével szoftvercsomagokat vagy szoftvercsomag-tartományokat kiválasztani vagy kizárni:
Enter a selection (default=all): 1-10 15
Amely kiválasztja az 1-től 10-ig terjedő, valamint a 15-ös szoftvercsomagot telepítésre, vagy:
Enter a selection (default=all): ^5-8 ^2
Amely kiválasztja az összes szoftvercsomagot, kivéve az 5-től 8-ig terjedőket és a 2-est, telepítésre.
A gnome szoftvercsoporthoz tartozó szoftvercsomagok megtekintéséhez futtassa a következő parancsot:
$ pacman -Sg gnome
Látogassa meg a https://archlinux.org/groups/ weboldalt is, hogy megtekintse, milyen szoftvercsomagcsoportok érhetőek el.
--needed kapcsolóval.Szoftvercsomagok eltávolítása
Futtassa a következő parancsot egyetlen szoftvercsomag eltávolítása érdekében, úgy, hogy annak összes szoftvercsomag-függősége telepítve maradjon a számítógépen:
# pacman -R szoftvercsomagnév
Futtassa a következő parancsot egyetlen szoftvercsomag és a hozzá tartozó szoftvercsomag-függőségek eltávolítása érdekében. A szóban forgó szoftvercsomaggal együtt kizárólag azok a szoftvercsomag-függőségek lesznek letörölve a számítógépről amely szoftvercsomag-függőségek jelenlétét a számítógépen egyetlen másik telepített szoftvercsomag se nem igényli:
# pacman -Rs szoftvercsomagnév
Ha olyan szoftvercsomagcsoportot próbál eltávolítani, amely szükséges szoftvercsomagokat tartalmaz, akkor a fenti parancsok időnként megtagadhatják a lefutást. Ebben az esetben próbálja meg a következőt:
# pacman -Rsu szoftvercsomagnév
Futtassa a következő parancsot egyetlen szoftvercsomag, annak szoftvercsomag-függőségei, valamint az adott szoftvercsomagtól függő összes szoftvercsomag eltávolítása érdekében:
# pacman -Rsc szoftvercsomagnév
Futtassa a következő parancsot egy olyan szoftvercsomag eltávolítása érdekében, amelyet egy másik szoftvercsomag igényel, anélkül hogy eltávolítaná a függő szoftvercsomagot:
# pacman -Rdd szoftvercsomagnév
A pacman fontos beállításfájlokat ment el bizonyos alkalmazások eltávolításakor, és ezeket a fájlokat .pacsave kiterjesztéssel nevezi el. Az ilyen biztonsági mentések létrehozásának a megakadályozásához használja a -n kapcsolót:
# pacman -Rn szoftvercsomagnév
Szoftvercsomagok frissítése
- Az elvárás az, hogy a felhasználók rendszeresen frissítsék az operációs rendszereiket a System maintenance (Magyar)#Operációs rendszer frissítése szakasz útmutatásait követve, és ne gondolkodás nélkül futtassák az alábbi parancsot.
- Az Arch kizárólag teljes rendszerfrissítést támogat. További részletekért tekintse meg a System maintenance (Magyar)#Részleges frissítések nincsenek támogatva és #Szoftvercsomagok telepítése leírásokat.
A pacman egyetlen paranccsal képes frissíteni az operációs rendszer összes szoftvercsomagját. Ez a művelet hosszabb ideig is eltarthat, attól függően, hogy mennyire naprakész az operációs rendszer. Az alábbi parancs szinkronizálja a szoftvercsomag-tárolók adatbázisait, és frissíti az operációs rendszer szoftvercsomagjait, kivéve azokat a "lokális" szoftvercsomagokat, amelyek nincsenek a beállított szoftvercsomag-tárolókban:
# pacman -Syu
Szoftvercsomag-adatbázisok lekérdezése
A pacman a helyi szoftvercsomag-adatbázist a -Q kapcsolóval, a szinkronizált adatbázist a -S kapcsolóval, míg a fájlok adatbázisát a -F kapcsolóval kérdezi le. Az egyes kapcsolókhoz tartozó al opciókért tekintse meg a pacman -Q --help, pacman -S --help és pacman -F --help súgókat.
# pacman -Fy
pacman-filesdb-refresh.timer időzítőt engedélyezheti/elindíthatja annak érdekében, hogy a pacman fájladatbázisa hetente frissüljön.A pacman képes szoftvercsomagokat keresni az adatbázisban, a szoftvercsomagok nevében és a leírásában egyaránt:
$ pacman -Ss szöveg1 szöveg2 ...
Előfordulhat, hogy a -s beépített ERE-je (Extended Regular Expressions – kiterjesztett reguláris kifejezések) sok nem kívánt találatot eredményez, ezért korlátozni kell, hogy csak a szoftvercsomag nevére illeszkedjen – ne a leírásra vagy bármely más mezőre:
$ pacman -Ss '^vim-'
Már telepített szoftvercsomagok keresése:
$ pacman -Qs szöveg1 szöveg2 ...
Távoli szoftvercsomagokban található szoftvercsomagfájlnevek keresése:
$ pacman -F szöveg1 szöveg2 ...
Annak érdekében, hogy megtekintse a részletes információt egy adott szoftvercsomagról (például az adott szoftvercsomag szoftvercsomag-függőséggel kapcsolatban) futtassa a következő parancsot:
$ pacman -Si szoftvercsomagnév
Helyileg telepített szoftvercsomagok esetén futtassa a következő parancsot:
$ pacman -Qi szoftvercsomagnév
Kettő -i kapcsoló megadása esetén megjelenik a biztonsági mentési fájlok listája és azok módosítási állapota is:
$ pacman -Qii szoftvercsomagnév
Egy szoftvercsomag által telepített fájlok listájának lekérése:
$ pacman -Ql szoftvercsomagnév
Egy távoli szoftvercsomag által telepített fájlok listájának lekérése:
$ pacman -Fl szoftvercsomagnév
Egy szoftvercsomag által telepített fájlok jelenlétének ellenőrzése:
$ pacman -Qk szoftvercsomagnév
Alaposabb ellenőrzést végez a k kapcsoló kétszeri megadása.
Adatbázis lekérdezése annak megállapításához, hogy egy fájl a fájlrendszerben melyik szoftvercsomaghoz tartozik:
$ pacman -Qo /útvonal/a/fájlhoz/fájlnévvel/együtt
Adatbázis lekérdezése annak megállapításához, hogy egy fájl melyik távoli csomaghoz tartozik:
$ pacman -F /útvonal/a/fájlhoz/fájlnévvel/együtt
Összes olyan szoftvercsomag listázása, amelyre már szoftverfüggőségként nincs szükség (elárvult szoftvercsomagok):
$ pacman -Qdt
Összes olyan szoftvercsomag listázása, amelyeket kifejezetten Ön, saját maga telepített, és amelyekre az operációs rendszeren nincs szükség szoftvercsomag-függőségként:
$ pacman -Qet
További példákért tekintse meg a pacman (Magyar)/Tips and tricks (Magyar) leírást.
A fejlettebb funkcionalitás érdekében telepítse a pkgfile szoftvercsomagot, amely egy külön adatbázist használ az összes fájl és a hozzájuk tartozó szoftvercsomagok nyilvántartására.
Pactree
Egy szoftvercsomag szoftvercsomag-függőségi fájának a megtekintése érdekében futtassa a következő parancsot:
$ pactree szoftvercsomagnév
Egy szoftvercsomag szoftvercsomag-függőségi fájának a visszafelé történő megtekintése érdekében a pactree parancsnak adja meg a -r kapcsolót.
Adatbázis szerkezete
A pacman adatbázisok általában a /var/lib/pacman/sync könyvtárban találhatóak. Az /etc/pacman.conf fájlban megadott minden szoftvercsomag-tárolóhoz tartozik egy megfelelő adatbázisfájl ezen a helyen. Az adatbázisfájlok gzip segítségével tömörített tar archívumfájlok, amelyek minden szoftvercsomaghoz (például a which szoftvercsomag esetében) egy-egy könyvtárat tartalmaznak:
$ tree which-2.21-5
which-2.21-5 |-- desc
A desc fájl metaadatokat tartalmaz, például a szoftvercsomag leírását, szoftvercsomag-függőségeit, fájlméretét és MD5 ellenőrzőösszegét.
Szoftvercsomag-gyorsítótár kitakarítása
A pacman a letöltött szoftvercsomagokat a /var/cache/pacman/pkg/ könyvtárban tárolja. Ebből a könyvtárból nem távolítja el automatikusan az ide régibben letöltött, vagy ebből a könyvtárból az operációs rendszerre feltelepített, majd az operációs rendszerről eltávolított szoftvercsomag-verziókat. Ennek vannak bizonyos előnyei:
- Lehetővé teszi egy szoftvercsomag korábbi verzióra való visszaállítását anélkül, hogy a korábbi verziót más forrásból, például az Arch Linux Archívumból kellene beszerezni.
- Egy eltávolított szoftvercsomag könnyedén újratelepíthető közvetlenül a gyorsítótár könyvtárból, a szoftvercsomag-tárolóból történő újbóli letöltés nélkül.
Azonban szükséges az gyorsítótár szándékos, időszakonkénti törlése annak érdekében, hogy megakadályozzuk a könyvtár méretének korlátlan növekedését.
A paccache(8) parancsfájl, amely a pacman-contrib szoftvercsomag része, alapértelmezés szerint törli az összes gyorsítótárazott verziót a telepített és eltávolított szoftvercsomagok közül, kivéve a legutóbbi három verziót:
# paccache -r
Engedélyezze és indítsa el a paccache.timer időzítőt annak érdekében, hogy hetente törlésre kerüljenek a nem használt szoftvercsomagok. A szolgáltatás argumentumait az /etc/conf.d/pacman-contrib fájlban beállíthatja, például a PACCACHE_ARGS='-k1' vagy a PACCACHE_ARGS='-uk0' példának megfelelően.
Azt is meghatározhatja, hogy hány korábbi verziót kíván megőrizni. Ha kizárólag egy korábbi verziót szeretne megtartani, akkor használja a következőt:
# paccache -rk1
Adja hozzá a -u/--uninstalled kapcsolót, hogy a paccache parancs működését a nem telepített szoftvercsomagokra korlátozza. Például, ha az összes gyorsítótárazott verziót el kívánja távolítani a nem telepített szoftvercsomagok közül, akkor használja a következőt:
# paccache -ruk0
További lehetőségek megtekintése érdekében futtassa a paccache -h parancsot.
A pacman tartalmaz néhány beépített opciót is a gyorsítótár és a megmaradt adatbázisfájlok törlésére, amelyek már nem szerepelnek a /etc/pacman.conf beállításfájlban. Azonban a pacman nem kínál lehetőséget korábbi verziók megtartására, ezért pacman alapértelmezett beállításai agresszívebbek mint a paccache beállításai.
Annak érdekében, hogy a számítógépre nem feltelepített szoftvercsomagokhoz tartozó összes gyorsítótárazott szoftvercsomag el legyen távolítva, valamint a nem használt szinkronizálási adatbázisok is el legyenek távolítva, futtassa a következő parancsot:
# pacman -Sc
A gyorsítótár összes fájljainak az eltávolításához használja kétszer a clean kapcsolót. Ez a legagresszívebb megközelítés, és semmit sem hagy a gyorsítótár könyvtárában:
# pacman -Scc
További alternatívák a gyorsítótár tisztítására a pkgcachecleanAUR és a pacleanerAUR.
További parancsok
Szoftvercsomag letöltése telepítés nélkül:
# pacman -Sw szoftvercsomagnév
Telepítsen egy lokális szoftvercsomagot, amely nem egy távoli szoftvercsomag-tárolóból származik (például a szoftvercsomag az AUR szoftvercsomag-tárolóból való):
# pacman -U /útvonal/a/szoftvercsomaghoz/szoftvercsomagnév-verzió.pkg.tar.zst
Ha másolatot kíván megőrizni a lokális szoftvercsomagról a pacman gyorsítótárában, akkor használja a következőt:
# pacman -U file:///útvonal/a/szoftvercsomaghoz/szoftvercsomagnév-verzió.pkg.tar.zst
Telepítsen egy 'távoli' szoftvercsomagot (amely nem szerepel a pacman beállításfájljaiban megadott szoftvercsomag-tárolók között):
# pacman -U http://www.example.com/szoftvercsomag-tároló/példaszoftvercsomag.pkg.tar.zst
Próbaüzem
A pacman mindig felsorolja a telepítendő vagy eltávolítandó szoftvercsomagokat, és engedélyt kér, mielőtt bármilyen műveletet végrehajtana.
Ha feldolgozható formátumban szeretné megkapni a listát, és meg kívánja akadályozni a -S, -U és -R parancsok végrehajtását, akkor használhatja a -p kapcsolót, amely a --print rövidítése.
A --print-format hozzáadható a lista különböző formázásához. A --print-format %n egy olyan listát ad vissza, amely nem tartalmazza a szoftvercsomag-verziókat.
Telepítés oka
A pacman adatbázisa a telepített szoftvercsomagokat kettő csoportba sorolja a telepítés oka szerint:
-
Explicitly-installed (Közvetlen telepítési szándék. Szándékosan telepített.): Olyan szoftvercsomagok, amelyek közvetlen szándékkal, tudatosan lettek átadva egy általános pacman
-Svagy-Uparancsnak. - Dependencies (Szoftvercsomag-függőségek): Olyan szoftvercsomagok, amelyek – bár általában soha nem lettek átadva egy pacman telepítési parancsnak – közvetett módon lettek telepítve, mivel azokat a szándékosan telepített szoftvercsomagok igényelték szoftvercsomag-függőség formájában.
A szoftvercsomag telepítésekor lehetőség van arra, hogy a szoftvercsomag telepítésének az okát szoftvercsomag-függőségként állítsuk be:
# pacman -S --asdeps szoftvercsomagnév
A fenti parancs általában azért van használva, mert a szándékosan telepített szoftvercsomagok opcionálisan telepíthető szoftvercsomagokat kínálhatnak, amelyek jellemzően nem létfontosságú funkciókhoz tartoznak, és ezek telepítése az Ön döntésétől függ.
--asdeps ) kapcsolóval történő telepítés biztosítja, hogy amikor elárvult szoftvercsomagokat távolít el, akkor a pacman az ilyen módon beállított opcionális szoftvercsomagokat is eltávolítja.Amikor azonban egy szoftvercsomagot ismét telepítünk, az aktuális telepítési ok alapértelmezetten megmarad.
A szándékosan telepített szoftvercsomagok listája megjeleníthető a pacman -Qe paranccsal, míg a szoftvercsomag-függőségként települt szoftvercsomagok listája a pacman -Qd parancs segítségével tekinthető meg.
A már telepített szoftvercsomag telepítési okának a módosítása érdekében futtassa a következő parancsot:
# pacman -D --asdeps szoftvercsomagnév
Használja a --asexplicit kapcsolót az ellenkező művelet végrehajtásához.
--asdeps és --asexplicit kapcsolók használata frissítéskor – például a pacman -Syu szoftvercsomagnév --asdeps parancs esetén – nem javasolt. Ez ugyanis nemcsak a telepítendő szoftvercsomag, hanem az összes frissítésre kerülő szoftvercsomag telepítési okát is megváltoztatná.Mi történik a szoftvercsomag telepítése/frissítése/eltávolítása során?
Sikeres végrehajtás esetén a tranzakció munkafolyamata öt magas szintű lépést követ, valamint előleges és utólagos tranzakciós automatikus műveletindítót (hook-ot) tartalmaz:
- Ha nincs az adatbázis lezárva, akkor inicializálja a tranzakciót.
- Kiválassza, hogy mely szoftvercsomagok kerülnek hozzáadásra vagy eltávolításra a tranzakció során.
- Előkészíti a tranzakciót a jelzők alapján, azáltal, hogy érvényességi ellenőrzéseket végez a szinkronizált adatbázisokon, szoftvercsomagokon és azok szoftvercsomag-függőségein.
- Véglegesíti a tranzakciót:
- Ha alkalmazható, akkor letölti a szoftvercsomagokat (
_alpm_sync_load). - Ha a meglévő pacman
PreTransactionautomatikus műveletindítók (hook-ok) alkalmazhatóak, akkor azok végrehajtásra kerülnek. - Eltávolításra kerülnek azok a szoftvercsomagok, amelyeket más szoftvercsomagoknak kell felváltaniuk, amelyek ütköznek más szoftvercsomagokkal, vagy amelyek kifejezetten eltávolításra lettek kijelölve.
- Ha vannak hozzáadandó szoftvercsomagok, akkor minden egyes szoftvercsomag véglegesítésre kerül:
- Ha a szoftvercsomagnak van telepítési szkriptje, akkor annak
pre_installfüggvénye kerül végrehajtásra (vagy apre_upgrade, illetve apre_removeegy frissített vagy eltávolított szoftvercsomag esetén). - A pacman törli az összes fájlt a szoftvercsomag előző verziójából (frissített vagy eltávolított szoftvercsomag esetén). Azonban a szoftvercsomagban beállításfájlként megjelölt fájlok megmaradnak (Részletek a /Pacnew and Pacsave (Magyar) leírásban).
- A pacman kicsomagolja a szoftvercsomagot, és annak fájljait elhelyezi az operációs rendszer fájlrendszerében (telepített vagy frissített szoftvercsomag esetén). Azok a fájlok, amelyek felülírnák a megőrzött és kézzel módosított beállításfájlokat (tekintse meg az előző lépést), új néven kerülnek tárolásra (.pacnew).
- Ha a szoftvercsomagnak van telepítési szkriptje, akkor annak
post_installfüggvénye kerül végrehajtásra (vagypost_upgrade, illetvepost_removeegy frissített vagy eltávolított szoftvercsomag esetén).
- Ha a szoftvercsomagnak van telepítési szkriptje, akkor annak
- Ha a tranzakció végén létező pacman
PostTransactionautomatikus műveletindítók (hook-ok) alkalmazhatóak, akkor azok végrehajtásra kerülnek.
- Ha alkalmazható, akkor letölti a szoftvercsomagokat (
- Elengedi a tranzakciót, majd elengedi a tranzakciós erőforrást (tehát az adatbázis lezáródását elengedi).
Beállítás
A pacman beállításai a /etc/pacman.conf fájlban találhatóak: Ez az a hely, ahol a felhasználó beállíthatja a szoftver működését a kívánt módon. A beállításfájlról részletes információ a pacman.conf(5) súgóban található.
Általános beállítások
Az általános beállítások az [options] szakaszban találhatóak. Olvassa el a pacman.conf(5) súgót, vagy tekintse meg az alapértelmezett pacman.conf fájlt, hogy megtudja, milyen lehetőségek állnak itt rendelkezésre.
Verziók összehasonlítása frissítés előtt
A rendelkezésre álló szoftvercsomagok régi és új verzióinak megtekintéséhez a "VerbosePkgLists" sornál vegye ki a kommentezés jelet az /etc/pacman.conf fájlban. Az pacman -Syu parancs kimenete ezután a következőképpen fog kinézni:
Package (6) Old Version New Version Net Change Download Size extra/libmariadbclient 10.1.9-4 10.1.10-1 0.03 MiB 4.35 MiB extra/libpng 1.6.19-1 1.6.20-1 0.00 MiB 0.23 MiB extra/mariadb 10.1.9-4 10.1.10-1 0.26 MiB 13.80 MiB
Párhuzamos letöltések
Az egyidejűleg (párhuzamosan) letöltött szoftvercsomagok számát az /etc/pacman.conf fájlban lehet beállítani a ParallelDownloads opcióval az [options] szekció alatt. Az pacman szoftvercsomaggal érkező /etc/pacman.conf fájl ezt az értéket 5-re állítja. Ha az opció nincs megadva, akkor a szoftvercsomagok egymás után, szekvenciálisan kerülnek letöltésre.
Szoftvercsomag kihagyása a frissítésből
Ha azt szeretné, hogy egy adott szoftvercsomag kimaradjon az operácisó rendszer frissítése során, akkor adja hozzá a következő sort az [options] szekcióhoz:
IgnorePkg=linux
Több szoftvercsomag esetén használjon szóközzel elválasztott listát, vagy adjon meg további IgnorePkg sorokat. Emellett glob minták is használhatóak. Ha kizárólag egyszer szeretné kihagyni a szoftvercsomagokat, akkor használhatja a --ignore parancssori opciót – ezúttal vesszővel elválasztott listával.
A kihagyott szoftvercsomagok továbbra is frissíthetőek a pacman -S parancs használatával: Ebben az esetben a pacman emlékeztetni fogja arra, hogy ezek a szoftvercsomagok szerepelnek egy IgnorePkg bejegyzésben.
Szoftvercsomagcsoport kihagyása a frissítésből
A szoftvercsomagokhoz hasonlóan, teljes szoftvercsomagcsoport kihagyására is lehetőség van:
IgnoreGroup=gnome
Fájl kihagyása a frissítésből
Az összes fájl, amely a NoUpgrade direktívával van felsorolva, soha nem kerül módosításra szoftvercsomag telepítése vagy frissítése során, és az új fájlok .pacnew kiterjesztéssel lesznek telepítve.
NoUpgrade=útvonal/a/fájlhoz
Több fájl is megadható a következő módon:
NoUpgrade=útvonal/a/fájl1-hez útvonal/a/fájl2-höz
Fájlok kihagyása az operációs rendszerre történő telepítésből
Annak érdekében, hogy meghatározott fájlok vagy könyvtárak állandóan kimaradjanak a telepítési folyamat alól, sorolja fel azokat a NoExtract direktívánál. Például, ha el szeretné kerülni a bash kiegészítőszkriptek telepítését, akkor használja a következőt:
NoExtract=usr/share/bash-completion/completions/*
A későbbi szabályok felülírják a korábbiakat, és egy szabályt úgy lehet megtagadni, hogy elé írja a ! jelet (felkiáltójelet).
Több beállításfájl karbantartása
Ha több beállításfájllal rendelkezik (például fő beállításfájllal és olyan beállításfájllal, amelyben engedélyezve van a testing szoftvercsomag-tároló), és meg kellene osztania a beállításfájlokat a többi beállításfájl között, akkor használhatja az Include opciót, amelyet a beállításfájlokban kell megadni, például:
Include = /útvonal/a/közös/beállításfájlokhoz
Ahol a /útvonal/a/közös/beállításfájlokhoz fájl ugyanazokat a beállításfájlokat tartalmazza mindkét beállításfájl számára.
Automatikus műveletindítók (Hooks)
Magyarázat: A "hook" (automatikus műveletindító) informatikai kontextusban olyan mechanizmus vagy programrészlet, amely lehetővé teszi, hogy egy adott esemény bekövetkezésekor automatikusan lefusson egy előre meghatározott művelet vagy parancs.
A pacman képes tranzakció előtti és utáni automatikus műveletindítókat futtatni a /usr/share/libalpm/hooks/ könyvtárból. További könyvtárak adhatóak meg a pacman.conf fájlban található HookDir beállítással, amely alapértelmezetten a /etc/pacman.d/hooks értékre van állítva. A automatikusműveletindító-fájlok neveinek .hook végződéssel kell rendelkezniük. A pacman automatikus műveletindítók nem interaktívak.
A pacman automatikus műveletindítók például a systemd-sysusers és a systemd-tmpfiles szoftverekkel együtt arra vannak használva, hogy a szoftvercsomagok telepítése során automatikusan létrejöjjenek rendszerfelhasználók és fájlok. Például a tomcat8 szoftvercsomag előírja, hogy szüksége van egy tomcat8 nevű rendszerfelhasználóra, valamint bizonyos, ennek a felhasználónak a tulajdonában lévő könyvtárakra. A pacman automatikus műveletindítók, mint a systemd-sysusers.hook és a systemd-tmpfiles.hook, meghívják a systemd-sysusers és a systemd-tmpfiles szoftvereket, amikor a pacman megállapítja, hogy a tomcat8 szoftvercsomag olyan fájlokat tartalmaz, amelyek felhasználókat és ideiglenes fájlokat határoznak meg.
Az alpm automatikus műveletindítókkal kapcsolatban további információért tekintse meg az alpm-hooks(5) man súgót.
Szoftvercsomag-tárolók és tükörszerverek
Az [options] speciális szakaszon kívül a pacman.conf fájl minden más [section] része egy használni kívánt szoftvercsomag-tárolót határoz meg. A szoftvercsomag-tároló egy logikai szoftvercsomag-gyűjtemény, amely fizikailag egy vagy több szerveren van tárolva. Ezért minden ilyen szervert a szoftvercsomag-tároló tükörszerverének neveznek.
A szoftvercsomag-tárolók megkülönböztethetőek hivatalos és nem hivatalos kategóriákra. Számít a szoftvercsomag-tárolók sorrendje a beállításfájlban: Amennyiben két szoftvercsomag-tárolóban azonos nevű szoftvercsomag található, akkor az előbb felsorolt szoftvercsomag-tárolók elsőbbséget élveznek a későbbiekhez képest, függetlenül a szoftvercsomag verziószámtól. Ahhoz, hogy egy újonnan hozzáadott szoftvercsomag-tárolót használni tudjon, először frissítenie kell az egész operációs rendszert.
Minden szoftvercsomagtároló-szakasz lehetővé teszi a tükörszerverek listájának közvetlen meghatározását, vagy egy külön külső fájlban a Include utasítással, például a hivatalos szoftvercsomag-tárolók tükrözése a /etc/pacman.d/mirrorlist fájlból történik. A tükörszerverek beállításáról tekintse meg a Mirrors című cikket.
Könyvtár a szoftvercsomag-gyorsítótár számára
A pacman a letöltött szoftvercsomagfájlokat a gyorsítótárban tárolja. Ez egy olyan könyvtárban, amelyet a CacheDir jelöl a pacman.conf fájl [options] szakaszában. (Ha nincs megadva, akkor alapértelmezés szerint a gyorsítótár a /var/cache/pacman/pkg/ könyvtárat jelenti.)
Ha kizárólag a telepített szoftvercsomagok legfrissebb verzióit tartja meg, még akkor is idővel növekedhet a gyorsítótárkönyvtár mérete.
Amennyiben Ön azt szeretné, hogy ez a könyvtár egy másik, kényelmesebb helyre kerüljön át, akkor tegye a következők egyikét:
- Állítsa be a
CacheDiropciót apacman.conffájlban az új könyvtárra. Ne felejtse el megtartani a záró perjelet. Ez az ajánlott megoldás. - Csatoljon egy külön partíciót vagy például egy Btrfs alkönyvtárat a
/var/cache/pacman/pkg/könyvtárba. - Bind-mount segítségével csatolja fel a fájlrendszerbe a kiválasztott könyvtárat a
/var/cache/pacman/pkg/könyvtárba.
/var/cache/pacman/pkg/ könyvtárból egy másik helyre. Ez működési hibát okozhat a pacman számára, különösen amikor a pacman megpróbálja frissíteni saját magát.Szoftvercsomagok biztonsága
A pacman támogatja a szoftvercsomag-aláírásokat, amelyek további biztonsági réteget nyújtanak a szoftvercsomagok számára. Az alapértelmezett beállítás, SigLevel = Required DatabaseOptional, globális szinten engedélyezi az összes szoftvercsomag-aláírás ellenőrzését. Ez felülírható az egyes szoftvercsomag-tárolókhoz tartozó SigLevel sorokkal. A szoftvercsomag-aláírásról és az aláírás ellenőrzéséről további részleteket tudhat meg a pacman-key dokumentációban.
Hibaelhárítás
"Failed to commit transaction (conflicting files)" hiba
Amikor Ön a következő hibát látja: [1]
error: could not prepare transaction error: failed to commit transaction (conflicting files) package: /path/to/file exists in filesystem Errors occurred, no packages were upgraded.
Ez azért történik, mert a pacman fájlütközést észlelt, és a tervezéséből adódóan nem írja felül az Ön fájljait. Ez szándékos működés, nem hiba.
A probléma általában könnyen megoldható (bár a biztonság kedvéért érdemes utánajárni, hogy miként kerültek oda ezek a fájlok). Biztonságos megoldás, ha először ellenőrzi, hogy egy másik szoftvercsomag tulajdonolja-e a fájlt (pacman -Qo /útvonal/a/fájlhoz). Ha a fájlt egy másik szoftvercsomag tulajdonolja, akkor Önnek hibajelentést kell benyújtania. Ha a fájlt nem tulajdonolja másik szoftvercsomag, akkor nevezze át a létezik a fájlrendszerben állapotú fájlt, majd futtassa újra a frissítési parancsot. Ha minden rendben zajlik, akkor a fájl ezután eltávolítható.
Amennyiben Ön egy szoftvert kézi úton telepített, nem pedig a pacman használatával – például a make install parancson keresztül –, akkor el kell távolítania ezt a programot az összes fájljával együtt. Részletekért tekintse meg Pacman tips (Magyar)#Azon fájlok beazonosítása amelyek egyik szoftvercsomag tulajdonában se nincsenek leírást.
Minden telepített szoftvercsomaghoz tartozik egy /var/lib/pacman/local/szoftvercsomag-verzió/files fájl, amely metaadatokat tartalmaz az adott szoftvercsomagról. Ha ez a fájl megsérül, üres vagy hiányzik, akkor file exists in filesystem hibát eredményez a szoftvercsomag frissítésekor. Az ilyen hiba általában csak egyetlen szoftvercsomagot érint. Ahelyett, hogy kézzel átnevezné és később eltávolítaná az érintett szoftvercsomaghoz tartozó összes fájlt, futtathatja a pacman -S --overwrite glob package parancsot, hogy a pacman felülírja azokat a fájlokat, amelyek megfelelnek a glob mintának.
--overwrite kapcsoló használatát. Részletekért tekintse meg a System maintenance (Magyar)#Kerüljön el bizonyos pacman parancsokat leírást."Failed to commit transaction (invalid or corrupted package)" error
Keresse meg a .part fájlokat (részlegesen letöltött szoftvercsomagokat) a /var/cache/pacman/pkg/ könyvtárban, és távolítsa el őket. Ezeket gyakran egy egyedi XferCommand használata okozza a pacman.conf fájlban.
# find /var/cache/pacman/pkg/ -iname "*.part" -delete
Ugyanaz a hiba akkor is megjelenhet, amikor az archlinux-keyring (Arch Linux kulcstartó) elavult, és ez megakadályozza, hogy a pacman ellenőrizze a szoftvercsomagok aláírásait. A megoldásért és a jövőbeni elkerülés módjáért tekintse meg a Pacman (Magyar)/Package signing (Magyar)#Rendszeresen frissítse az operációs rendszert című leírást.
"Failed to init transaction (unable to lock database)" hiba
Amikor a pacman módosítani készül a szoftvercsomag-adatbázist (például egy szoftvercsomag telepítésekor), létrehoz egy zárolófájlt a /var/lib/pacman/db.lck helyen. Ez megakadályozza, hogy egy másik pacman példány egyszerre próbálja meg módosítani a csomagadatbázist.
Ha a pacman megszakításra kerül az adatbázis módosítása közben, akkor ez az elavult zárolófájl megmaradhat. Ha biztos abban, hogy nem fut egyetlen pacman példány sem, akkor törölje a zárolófájlt:
# rm /var/lib/pacman/db.lck
fuser /var/lib/pacman/db.lck parancsot rendszergazdaként, annak érdekében, hogy le ellenőrizze, vajon használja-e még valamelyik folyamat ezt a fájlt.Telepítéskor a szoftvercsomagokat nem lehet letölteni
Ez a hiba a Not found in sync db, Target not found vagy Failed retrieving file formákban jelentkezhet.
Először győződjön meg róla, hogy a szoftvercsomag valóban létezik. Ha biztos benne, hogy létezik, akkor előfordulhat, hogy a szoftvercsomaglista elavult. Próbálja meg futtatni a pacman -Syu parancsot, hogy frissüljön az összes szoftvercsomaglista és el legyen végezve a frissítés. Emellett ellenőrizze, hogy a kiválasztott tükörszerverek naprakészek-e, és hogy a szoftvercsomag-tárolók megfelelően be vannak-e állítva. A tükörszerverek naprakészen tartásához használhatja a Reflector segédszoftvert is.
Ha a pacman azt jelzi, hogy nincs frissítenivaló, de továbbra is megjelenik a Failed retrieving file hibaüzenet, akkor fontolja meg a adatbázis letöltésének kényszerítését a pacman -Syyu parancs használatával. Ez normál körülmények között soha nem szükséges, ezért vizsgálja meg alaposabban a tükörszerver állapotát és konzisztenciáját.
Az is előfordulhat, hogy a szoftvercsomagot tartalmazó szoftvercsomag-tároló nincs engedélyezve az Ön operációs rendszerén. Például a szoftvercsomag a multilib szoftvercsomag-tárolóban található, de a multilib nincs engedélyezve az pacman.conf fájlban.
Tekintse meg a FAQ (Magyar)#Miért van csak egyetlen verzió minden megosztott függvénykönyvtárból a hivatalos szoftvercsomag-tárolókban? című leírást.
Megszakított frissítés miatt nem bootolható operációs rendszer kijavítása
A frissítés megszakadhat áramkimaradás, kernelpánik vagy akár hardverhiba miatt is. A legtöbb esetben nem keletkezik jelentős kár, azonban az operációs rendszer nagy valószínűséggel nem lesz bootolható.
- Készítse elő az USB telepítő adathordozót, és indítsa el róla a live telepítő operációs rendszert.
- Csatolja fel a gyökérfájlrendszert, valamint az EFI rendszerpartíciót (ESP).
- Lépjen be a felcsatolt gyökérfájlrendszerbe az
arch-chrootparancs segítségével. - Ellenőrizze a
/var/log/pacman.logfájlt, és állítsa össze pontosan azt a szoftvercsomaglistát, amelyet a sikertelen tranzakció során frissített. Adja meg ezt a teljes listát apacman -Syuparancsnak, hogy újratelepítse a szoftvercsomagokat, és folytassa az eredeti frissítést:
# pacman -Syu $(grep "\[2025-07-27T22.*\] \[ALPM\] upgraded" /var/log/pacman.log | cut -d " " -f4 | tr "\n" " ")
A frissítés pontos megismétlése szükséges annak érdekében, hogy a megfelelő szkriptek és automatikus műveletindítók (hooks) lefussanak.
Frissítés közben összeomlik a pacman
Abban az esetben, amikor összeomlik a pacman "adatbázisírási" hibával szoftvercsomagok eltávolítása közben, és a szoftvercsomagok újratelepítése vagy frissítése ezt követően sikertelen, akkor az alábbi lépéseket hajtsa végre:
- Az Arch USB telepítő adathordozóról indítsa el a telepítő operációs rendszert. Lehetőleg friss telepítőképfájlt használjon, hogy a telepítőn lévő pacman verziója megegyezzen az Ön operációs rendszerén lévő pacman verziójával, vagy legyen újabb annál.
- Rendszergazdaként (root felhasználóként) csatolja fel az operációs rendszer gyökérfájlrendszerét, például a
mount /dev/sdaX /mntparancs futtatásával, majd ellenőrizze, hogy van-e elegendő szabad hely a felcsatolt köteteken adf -hparancs segítségével. - Csatolja fel a proc, sys és dev fájlrendszereket is a következő parancsokkal:
mount -t proc proc /mnt/proc; mount --rbind /sys /mnt/sys; mount --rbind /dev /mnt/dev - Ha az operációs rendszer az alapértelmezett adatbázis és alapértelmezett könyvtárhelyeket használja, akkor most frissítheti az operációs rendszer pacman adatbázisát, és elvégezheti a frissítést a
pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Syuparancs segítségével, mindezt rendszergazdai jogosultságokkal.- Alternatív megoldásként, amennyiben Ön nem tudja frissíteni vagy újratelepíteni az operációs rendszert, akkor tekintse meg a Pacman (Magyar)/Tips and tricks (Magyar)#Összes szoftvercsomag újratelepítése című leírást.
- A frissítés után az egyik módja annak, hogy ellenőrizze a nem frissített, de még mindig hibás szoftvercsomagokat:
find /mnt/usr/lib -size 0 - Ezt követően telepítse újra a még mindig hibás szoftvercsomagokat a
pacman --root /mnt --cachedir=/mnt/var/cache/pacman/pkg -S szoftvercsomagnévparancs futtatásával.
pacman: command not found
Ha a /var/cache/pacman/pkg könyvtár csak egy szimbolikus hivatkozás, akkor a pacman frissítés közben megpróbál egy valódi könyvtárat létrehozni, és ennek következtében eltávolítja ezt a szimbolikus hivatkozást. Ez a frissítés sikertelenségéhez vezet. Ennek eredményeként a /usr/bin/pacman és a pacman szoftvercsomag egyéb tartalmai hiányozni fognak.
Sosem szabad szimbolikus hivatkozást létrehozni a /var/cache/pacman/pkg helyen, mivel azt a pacman kezeli. Ehelyett használja a CacheDir beállítást vagy egy bind mount-ot. Részletekért tekintse meg a #Könyvtár a szoftvercsomag-gyorsítótár számára című leírást.
Ha már találkozott ezzel a problémával, és megsérült az Ön operációs rendszere, akkor kézzel kibonthatja a szoftvercsomagból a /usr könyvtár tartalmát a pacman visszaállításához, majd megfelelően újratelepítheti azt. Tekintse meg a FS#73306 hibabejelentést és a kapcsolódó fórumbejegyzést a részletekkel kapcsolatban.
A pacman manuális úton történő telepítése
A pacman-static használata
A pacman-staticAUR a pacman forráskódból statikusan lefordított változata, így akkor is képes futni, ha az operációs rendszer függvénykönyvtárai nem működnek. Ez a akkor is hasznos lehet, amikor részleges frissítés történt, és a pacman már nem futtatható.
A rögzített megjegyzés és a PKGBUILD lehetőséget biztosít a bináris fájl közvetlen letöltésére, amely felhasználható a pacman újratelepítésére vagy a teljes operációs rendszer frissítésére részleges frissítés esetén.
Forráskódból előre lefordított pacman-static bináris szoftver használata, amikor a PKGBUILD forráskódból történő lefordítása sikertelen
Bizonyos esetekben előfordulhat, hogy az Ön operációs rendszere olyan mértékben sérült (például hiányzó vagy nem kompatibilis függvénykönyvtárak miatt), hogy nem tudja futtatni a `makepkg` parancsot, illetve nem képes forráskódból sikeresen lefordítani a `pacman-static` szoftvercsomagot az AUR szoftvercsomag-tárolóból.
Ha a PKGBUILD szkriptfájlból történő kódfordítás sikertelen, vagy a `makepkg` nem futtatható, akkor letölthet egy forráskódból előre lefordított `pacman-static` bináris fájlt megbízható forrásból. Ez a statikus bináris fájl nem függ az operációs rendszer függvénykönyvtáraitól, és felhasználható egy működőképes `pacman` visszaállítására az Ön operációs rendszerén.
Megbízható forrás a bináris fájlhoz:
# https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/pacman-static
A használatához futtassa a következő parancsot:
$ curl -L -o pacman-static https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/pacman-static $ chmod +x pacman-static $ sudo ./pacman-static -Syu pacman
Ez frissíteni fogja az Ön operációs rendszerét, és újratelepíti a `pacman` szoftvercsomagot, ezáltal kijavítva a hiányzó megosztott függvénykönyvtárakhoz kapcsolódó sérült szoftvercsomag-függőségeket.
Külső pacman használata
Ha még a pacman-static sem működik, akkor lehetőség van a helyreállításra egy külső pacman segítségével. Az egyik legegyszerűbb módszer erre az archiso használata, ahol a --sysroot vagy a --root kapcsolóval megadható az operációs rendszer csatolási pontja, amelyen a műveletet végre szeretné hajtani. A szükséges fájlrendszerek csatolásáról a --sysroot használatához tekintse meg a Chroot (Magyar)#A chroot használata leírást.
Manuális úton történő kibontással
Még ha a pacman súlyosan sérült is, manuális úton, kézzel helyreállítható a legfrissebb szoftvercsomagok letöltésével és azok megfelelő helyekre történő kibontásával. A durva lépések a következők:
- Határozza meg a telepítendő pacman szoftvercsomagnak a szoftvercsomag-függőségeit.
- Töltse le az egyes szoftvercsomagokat az Ön által választott tükörszerverről.
- Bontsa ki a szoftvercsomagokat a gyökérkönyvtárba.
- Telepítse újra ezeket a szoftvercsomagokat a
pacman -S --overwriteparancs segítségével, hogy ennek megfelelően frissítse a szoftvercsomag-adatbázist. - Végezze el az operációs rendszer teljes frissítését.
Ha rendelkezik egy jól működő Arch operációs rendszerrel, akkor a teljes szoftvercsomagfüggőségi-lista megtekinthető a következő paranccsal:
$ pacman -Q $(pactree -u pacman)
Azonban előfordulhat, hogy csak néhány szoftvercsomag kell frissítenie, az adott problémától függően. Egy szoftvercsomag kibontásának példája:
# tar -xvpwf szoftvercsomagnév.tar.zst -C / --exclude .PKGINFO --exclude .INSTALL --exclude .MTREE --exclude .BUILDINFO
Figyeljen a w kapcsoló használatára, amely az interaktív módot jelöli. A nem interaktív futtatás rendkívül kockázatos, mivel könnyen előfordulhat, hogy egy fontos fájlt felülír. Ügyeljen arra is, hogy a szoftvercsomagokat a megfelelő sorrendben bontsa ki (azaz először a szoftvercsomag-függőségeket). Ez a fórumbejegyzés egy olyan példát tartalmaz, ahol csak néhány pacman szoftvercsomag-függőség van sérülve.
"Unable to find root device" hiba jelenik meg újraindítást követően
A legvalószínűbb, hogy az initramfs megsérült egy kernel frissítés során (ennek oka lehet a pacman --overwrite kapcsolójának a nem megfelelő használata). Kettő lehetőség van. Először próbálja meg a Fallback bejegyzést.
Tab billentyűt, amikor megjelenik a rendszerbetöltő menü (Syslinux esetén), vagy a e billentyűt (GRUB vagy systemd-boot esetén), nevezze át initramfs-linux-fallback.img névre, majd nyomja meg az Enter vagy b billentyűt (a rendszerbetöltő típusától függően), hogy az új paraméterekkel indítsa el az operációs rendszert.Miután az operációs rendszer elindult, futtassa az alábbi parancsot (az alapértelmezett linux kernel esetén) konzolból vagy terminálból az initramfs képfájl forráskódból történő újraépítése érdekében:
# mkinitcpio -p linux
Ha ez nem működik, akkor egy aktuális Arch kiadásból (CD/DVD vagy USB adathordozó) csatolja fel a root és boot partíciókat, sorrendben a /mnt és /mnt/boot könyvtárakba. Ezután végezze el a chroot műveletet az arch-chroot parancs segítségével:
# arch-chroot /mnt # pacman -Syu mkinitcpio systemd linux
- Ha Ön nem rendelkezik aktuális kiadással, vagy csak egy másik "live" Linux disztribúció áll rendelkezésére, akkor a chroot műveletet a régi, hagyományos módon is elvégezheti. Nyilvánvalóan több gépelésre lesz szükség, mint egyszerűen a
arch-chrootszkript futtatása. - Ha a
Could not resolve hostüzenettel a pacman hibát jelez, akkor kérjük Önt, hogy ellenőrizze az internetkapcsolatát. - Amennyiben Ön nem tud belépni az arch-chroot vagy chroot környezetbe, de arra van szükség, hogy szoftvercsomagokat telepítsen újra, akkor használhatja a
pacman --sysroot /mnt -Syu foo barparancsot. Ezáltal a pacman az Ön gyökérpartícióján fog működni.
A kernel (a linux szoftvercsomag) újratelepítése automatikusan újból legenerálja az initramfs képfájlt az mkinitcpio -p linux parancs segítségével. Tehát, ezt a műveletet Önnek külön nem szükséges elvégeznie.
Ezt követően javasolt futtatni az exit, umount /mnt/{boot,} és a reboot parancsokat.
"Warning: current locale is invalid; using default "C" locale" hiba
Ahogy a hibaüzenet mondja, az Ön locale változója (nyelvterület-beállítások) nincs beállítva helyesen. Tekintse meg a Locale leírást.
Hiányzó nyelvterületi beállításokra vonatkozó figyelmeztető üzenetek
Amikor a nyelvterületi beállítások fájljait szándékosan eltávolítják olyan szoftverekkel, mint a bleachbit vagy a localepurgeAUR, akkor a pacman figyelmeztetéseket adhat ki hiányzó nyelvterületi beállítások miatt a szoftvercsomag-frissítések során.
A figyelmeztetések elnyomásához ki lehet kommentelni a CheckSpace opciót a pacman.conf fájlban. Ne feledje, hogy a CheckSpace letiltása kikapcsolja a tárhelyellenőrzési funkciót minden szoftvercsomag-telepítésnél, ezért Ön ezt a kerülő megoldást kizárólag akkor alkalmazza, amikor rendelkezik alternatív módszerrel az adathordozó szabad területének a figyelésére.
Nem veszi figyelembe a proxybeállításokat a pacman
Győződjön meg arról, hogy a releváns környezeti változók ($http_proxy, $ftp_proxy stb.) megfelelően vannak beállítva. Ha pacman szoftvercsomag-kezelőt sudo paranccsal használja, akkor be kell állítania a sudo parancsot, hogy átadja ezeket a környezeti változókat a pacman szoftvercsomag-kezelőnek. Továbbá, győződjön meg arról, hogy a dirmngr beállításfájlja tartalmazza a honor-http-proxy beállítást a /etc/pacman.d/gnupg/dirmngr.conf fájlban, hogy a proxy figyelembe legyen véve a kulcsok frissítésekor.
Hogyan telepíthetem újra úgy az összes szoftvercsomagot, hogy meg legyen őrizve a szoftvercsomagokról az az információ, hogy azok szándékosan, vagy szoftvercsomag-függőségként lettek-e telepítve?
Az összes natív szoftvercsomag újratelepítéséhez használja a következő parancsot: pacman -Qnq | pacman -S - vagy pacman -S $(pacman -Qnq) (A -S opció alapértelmezés szerint megőrzi a telepítés okát).
Ezután újra kell telepítenie az összes külső szoftvercsomagot, amelyek a pacman -Qmq paranccsal listázhatók.
"Cannot open shared object file" hiba
Úgy tűnik, hogy a pacman szoftvercsomag-kezelő előző tranzakciós művelete eltávolította vagy megsértette azokat a megosztott függvénykönyvtárakat, amelyekre magának a pacman szoftvercsomag-kezelőnek is szüksége van.
A helyzet helyreállításához manuális úton, kézzel kell kibontania a szükséges függvénykönyvtárakat az Ön fájlrendszerére. Először derítse ki, hogy melyik szoftvercsomag tartalmazza a hiányzó függvénykönyvtárat, majd keresse meg azt a pacman gyorsítótárában (/var/cache/pacman/pkg/). Bontsa ki a szükséges megosztott függvénykönyvtárat a fájlrendszerre. Ez lehetővé teszi a pacman futtatását.
Most következik a sérült szoftvercsomag újratelepítése. Ne feledje, hogy használni kell a --overwrite kapcsolót, mivel az imént kézzel bontott ki rendszerfájlokat, és a pacman erről nem tud. A pacman helyesen lecseréli a megosztott függvénykönyvtárfájlt a szoftvercsomagban található verzióra.
Ennyi. Frissítse az operációs rendszer többi részét.
Szoftvercsomagok letöltésének megakadása
Jelentve lett néhány probléma a hálózati kapcsolatot illetően, amelyek megakadályozzák, hogy a pacman frissítse vagy szinkronizálja a szoftvercsomag-tárolókat. [2] [3] Amikor az Arch Linuxot natívan telepíti, ezek a problémák megoldhatóak úgy, hogy az alapértelmezett pacman fájlletöltő szoftverét egy alternatívára cseréli (további részletekért tekintse meg a pacman teljesítményének javítása leírást). Ha az Arch Linuxot vendég operációs rendszerként telepíti a VirtualBox környezetben, akkor a problémát szintén meg lehet oldani, amennyiben a gép tulajdonságainál a Host interface lehetőséget használja a NAT lehetőség helyett.
Nem sikerült letölteni a 'core.db' fájlt a tükörszerverről
Ha ezt a hibaüzenetet kapja annak ellenére, hogy a tükörszerverek helyesen vannak beállítva, akkor próbáljon meg egy másik névkiszolgálót beállítani.
error: 'local-package.pkg.tar': permission denied
Ha egy szoftvercsomagot szeretne telepíteni egy sshfs csatoláson keresztül a pacman -U használatával, és hibát kap, akkor helyezze át a szoftvercsomagot egy helyi könyvtárba, majd próbálja meg újra telepíteni.
error: could not determine cachedir mount point /var/cache/pacman/pkg
A chroot környezetben történő végrehajtáskor – például a pacman -Syu parancs használatakor – hiba lép fel:
error: could not determine cachedir mount point /var/cache/pacman/pkg error: failed to commit transaction (not enough free disk space)
Ez gyakran azért fordul elő, mert a chroot könyvtár nem csatolási pont, amikor belép a chroot környezetbe. A megoldáshoz tekintse meg a megjegyzést az Install Arch Linux from existing Linux (Magyar)#Downloading basic tools leírásban, valamint a arch-chroot(8) man súgóban, amely magyarázatot és példát nyújt a bind mounting használatára annak érdekében, hogy a chroot könyvtár csatolási ponttá váljon.
error: GPGME error: No data
Ha nem tudja frissíteni a szoftvercsomagokat, és a címben szereplő hibát kapja, akkor próbálja meg az rm -r /var/lib/pacman/sync/ parancs futtatását, mielőtt újra megpróbálná a frissítést.
Ha a szinkronizációs fájlok eltávolítása nem segít, akkor ellenőrizze a file /var/lib/pacman/sync/* parancs kiadásával, hogy ezek a fájlok valóban gzip tömörített adatok még mielőtt megkísérelné a frissítést. Egy útválasztó vagy proxy megakadályozhatja a letöltéseket. Az akadályozás akár HTML típusú is lehet.
Ha a szinkronizációs fájlok megfelelő típusúak, akkor előfordulhat, hogy a tükörszerverrel van probléma. Ellenőrizze a használt tükörszerver(eke)t a pacman-conf -r core és pacman-conf -r extra parancsokkal. Illessze be a legelsőként visszaadott URL címet egy böngészőbe, és ellenőrizze, hogy megjelenik-e egy fájllista. Ha a tükörszerver hibát dob vissza, akkor kommentálja ki az adott sort a /etc/pacman.d/mirrorlist fájlban. Megpróbálhatja a tükörszerverek frissítését vagy újbóli sorban történő elrendezését is.
error: GPGME error: General error and ":: File /var/cache/pacman/pkg/<package>.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
Ha ez a hiba jelentkezik, és például nem tudja frissíteni az operációs rendszert vagy egyetlen szoftvercsomagot sem tud frissíteni, akkor lehetséges, hogy a DISPLAY értéke üresre van állítva, ami úgy tűnik, hogy megszakítja a GPG-folyamatot.
Ebben az esetben az unset DISPLAY parancs kiadása vagy a változó tetszőleges értékre való beállítása nagy valószínűséggel ismét lehetővé teszi a frissítést, amennyiben a fentebb említett lehetőségek egyike sem oldotta meg a problémát. További részletekért tekintse meg ezt a fórumbejegyzést.
Reinstall broken or out-of-sync packages
Használhatja a pacman -Qk $pkg parancsot annak ellenőrzésére, hogy a(z) $pkg szoftvercsomag telepített fájljai megegyeznek-e az adatbázisban szereplő verzió fájljaival. Több szoftvercsomag esetén az alábbi ciklus segítségével újratelepítheti azokat, amelyeknél hiányzó fájl található:
# LC_ALL=C.UTF-8 pacman -Qk 2>/dev/null | grep -v ' 0 missing files' | cut -d: -f1 |
while read -r package; do
pacman -S "$package" --noconfirm
done
Tegyük fel, hogy a helyi adatbázis, amely a /var/lib/pacman könyvtárban található, naprakészebb, mint a telepített szoftvercsomagok a / fájlrendszerben (például részleges visszaállítás miatt), akkor ez a módszer megfelelő a gyökérfájlrendszer újraszinkronizálásához a helyi adatbázissal.