A „yum-utils” telepítése és használata a Yum karbantartására és teljesítményének növelésére
Függetlenül attól, hogy a Fedora elkezdi alkalmazni a dnf-et új csomagkezelőként és alapértelmezett csomagkezelő könyvtárként, nem fogja leváltani a jó öreg yum csomagkezelőt más spinoff disztribúciókban (mint például a Red Hat Enterprise Linux ( >RHEL) és CentOS), amíg be nem bizonyul olyan megbízhatónak, mint a yum, és szilárdabbnak (a Fedora Project wiki szerint november 15-én, 2015, a dnf még tesztelhető állapotban van). Így a yum-management képességei még jó ideig jó szolgálatot tesznek.
Emiatt ebben az útmutatóban bemutatjuk a yum-utils-t, a yum-mal integrálható segédprogramok gyűjteményét, amelyek többféle módon bővítik a natív funkcióit, így hatékonyabbá és könnyebben használhatóvá teszik.
A yum-utils telepítése RHEL/CentOS rendszerben
A Yum-utils benne van az alaptárban (amely alapértelmezés szerint engedélyezve van), így bármely Fedora-alapú disztribúcióba telepítése ugyanolyan egyszerű, mint:
yum update && yum install yum-utils
A yum-utils által biztosított összes segédprogram automatikusan települ a fő csomaggal, amelyet a következő részben ismertetünk.
Fedezze fel a yum-utils csomag által biztosított segédprogramokat
A yum-utils által biztosított eszközök listája a kézikönyv oldalán található:
man yum-utils
Íme 10 a yum segédprogramok közül, amelyekről úgy gondoltuk, hogy érdekelni fogják:
1. Hibakeresés egy csomagon
A debuginfo-install
hibakereséséhez szükségesek összeomlás esetén vagy miközben egy bizonyos csomagot használó alkalmazásokat fejlesztenek.
Egy csomag (vagy bármely más végrehajtható fájl) hibakereséséhez telepítenünk kell a gdb-t (a GNU hibakeresőt), és ezzel indítani kell egy programot hibakereső módban.
Például:
gdb $(which postfix)
A fenti parancs elindít egy gdb parancsértelmezőt, ahol beírhatjuk a végrehajtandó műveleteket. Például a futtatás (az alábbi képen látható módon) elindítja a programot, míg a bt (nincs látható) megjeleníti a verem nyomkövetését (más néven backtrace ) a programban, amely felsorolja azokat a függvényhívásokat, amelyek a program végrehajtásának egy bizonyos pontjához vezettek (ezekkel az információkkal a fejlesztők és a rendszergazdák is kitalálhatják, mi hibázott összeomlás esetén).
A többi elérhető művelet és azok várható eredményei a man gdb-ben találhatók.
2. Keresse meg a Telepített csomagok tárházát
A következő parancs megmutatja, hogy a jelenleg telepített
find-repos-of-install httpd postfix dovecot
Ha argumentumok nélkül fut, a find-repos-of-install visszaadja a jelenleg telepített csomagok teljes listáját.
3. Távolítsa el a duplikált vagy árva csomagokat
A package-cleanup kezeli a csomagtisztítást, a duplikációkat, az árva csomagokat (az aktuálisan beállított tárolóktól eltérő forrásból telepített programokat) és az egyéb függőségi inkonzisztenciákat, beleértve a régi kernelek eltávolítását a következő példában látható módon:
package-cleanup --orphans
package-cleanup --oldkernels
Nem kell attól tartanod, hogy az utolsó parancs károsítja a kernelt. Csak a régi kernelcsomagokat érinti (a jelenleg futó verziónál régebbi verziók), amelyekre már nincs szükség.
4. Ismerje meg a csomagfüggőségi listát
A repo-graph egy teljes csomagfüggőségi listát ad vissza pont formátumban a beállított tárolókból elérhető összes csomaghoz. Alternatív megoldásként a repo-graph
ugyanazt az információt adhatja vissza lerakatonként, ha a --repoid=
opcióval használja.
Például nézzük meg a frissítések tárházában lévő egyes csomagok függőségeit:
repo-graph --repoid=updates | less
A fenti parancsban a repo-graph kimenetét elküldjük a less-re a könnyebb megjelenítés érdekében, de átirányíthatja azt egy helyi fájlba későbbi ellenőrzés céljából:
repo-graph --repoid=updates > updates-dependencies.txt
Mindkét esetben láthatjuk, hogy az iputils csomag a systemd és az openssl-libs-től függ.
5. Ellenőrizze a feloldatlan függőségek listáját
Az újrazárás beolvassa a konfigurált tárolók metaadatait, ellenőrzi a bennük lévő csomagok függőségeit, és megjeleníti a feloldatlan függőségek listáját az egyes csomagokhoz:
repoclosure
6. Hogyan lehet ellenőrizni a legújabb vagy legrégebbi csomagokat egy címtárban
Az repomanage lekérdez egy könyvtárat rpm csomagokkal, és visszaadja a könyvtár legújabb vagy legrégebbi csomagjainak listáját. Ez az eszköz akkor jöhet jól, ha van egy könyvtára, ahol különböző programok több .rpm csomagját tárolja.
Ha argumentumok nélkül hajtják végre, a repomanage a legújabb csomagokat adja vissza. Ha a --old
jelzővel fut, akkor a legrégebbi csomagokat adja vissza:
ls -l
cd rpms
ls -l rpms
repomanage rpms
Kérjük, vegye figyelembe, hogy az rpm csomagok nevének megváltoztatása NEM befolyásolja az újrakezelés működését.
7. Kérjen le Yum adattárakat, hogy információkat kapjon a csomagról
A repoquery lekérdezi a yum adattárakat, és további információkat kap a csomagokról, függetlenül attól, hogy telepítve vannak-e vagy sem (függőségek, a csomagban lévő fájlok stb.).
Például a htop (Linux Process Monitoring) jelenleg nincs telepítve erre a rendszerre, amint az alább látható:
which htop
rpm -qa | grep htop
Most tegyük fel, hogy szeretnénk felsorolni a htop függőségeit, valamint az alapértelmezett telepítésben szereplő fájlokat. Ehhez hajtsa végre a következő két parancsot:
repoquery --requires htop
repoquery --list htop
8. Írja be az összes telepített RPM-csomagot a ZIP-fájlba
A yum-debug-dump lehetővé teszi az összes telepített csomag teljes listájának, a lerakatban elérhető összes csomagnak, valamint a fontos konfigurációs és rendszerinformációknak egy tömörített fájlba történő kiíratását.
Ez hasznos lehet abban az esetben, ha egy felmerült problémát szeretne hibakeresni. Kényelmünk érdekében a yum-debug-dump a fájlt yum_debug_dump-
yum-debug-dump
Mint minden tömörített szövegfájl esetében, ennek tartalmát a zless paranccsal tekinthetjük meg:
zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz
Ha vissza kell állítania a yum-debug-dump által biztosított konfigurációs információkat, a yum-debug-restore segítségével ezt megteheti:
yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz
9. Forrás RPM-ek letöltése a Yum Repositories-ból
A yumdownloader letölti a forrás RPM-fájlokat a tárolókból, beleértve azok függőségeit is. Hasznos hálózati adattár létrehozásához, amely más, korlátozott internet-hozzáféréssel rendelkező gépekről is elérhető.
A Yumdownloader lehetővé teszi, hogy ne csak a bináris RPM-eket töltse le, hanem a forrásokat is (ha a --source
opcióval együtt használja).
Például hozzunk létre egy htop-files nevű könyvtárat, ahol tároljuk a program rpm használatával történő telepítéséhez szükséges RPM-eket. Ehhez a --resolve
kapcsolót kell használnunk a yumdownloader mellett:
mkdir htop-files
cd htop-files
yumdownloader --resolve htop
rpm -Uvh
10. Távoli Yum Repository szinkronizálása helyi címtárral
A reposync szorosan kapcsolódik a yumdownloader-hez (sőt, szinte ugyanazokat a lehetőségeket támogatják), de jelentős előnyt kínál. A bináris vagy forrás RPM-fájlok letöltése helyett szinkronizál egy távoli tárolót egy helyi könyvtárral.
Szinkronizáljuk a jól ismert EPEL-tárat egy epel-local nevű alkönyvtárral az aktuális munkakönyvtáron belül:
man reposync
mkdir epel-local
reposync --repoid=epel --download_path=epel-local
Vegye figyelembe, hogy ez a folyamat elég sokáig tart, mivel a 8867 csomagok letöltése történik:
A szinkronizálás befejezése után a du paranccsal ellenőrizzük az EPEL tároló újonnan létrehozott tükrében használt lemezterületet:
du -sch epel-local/*
Most már rajtad múlik, hogy meg szeretnéd-e tartani ezt az EPEL tükröt, vagy csomagok telepítésére használja a távoli helyett. Az első esetben ne feledje, hogy ennek megfelelően módosítania kell az /etc/yum.repos.d/epel.repo elemet.
11. Javítsa ki a befejezetlen vagy megszakított Yum-tranzakciókat
A yum-complete-transaction a yum-utils program része, amely elkapja a befejezetlen vagy megszakított yum-tranzakciókat a rendszeren, és megpróbálja befejezni azokat.
Például amikor frissítjük a Linux szervereket a yum csomagkezelőn keresztül, néha figyelmeztető üzenetet küld, amely a következőképpen szól:
Vannak még befejezetlen tranzakciók. Érdemes lehet először futtatni a yum-complete-tranzakciót, hogy befejezze őket.
Az ilyen figyelmeztető üzenetek kijavításához és a probléma megoldásához a yum-complete-transaction parancs megjelenik a befejezetlen tranzakciók befejezéséhez, és megtalálja a befejezetlen vagy megszakított yum-tranzakciókat a tranzakció-all*ban. és transaction-done* fájlokat, amelyek a /var/lib/yum könyvtárban találhatók.
Futtassa a yum-complete-transaction parancsot a befejezetlen yum-tranzakciók befejezéséhez:
yum-complete-transaction --cleanup-only
Most a yum parancsok a hiányos tranzakciós figyelmeztetések nélkül futnak.
yum update
Megjegyzés: Ezt a tippet egyik rendszeres olvasónk, Mr. Tomast itt a megjegyzés rovatban.
Összegzés
Ebben a cikkben a yum-utilson keresztül biztosított leghasznosabb segédprogramokat ismertetjük. A teljes listát a man oldalon találja (man yum-utils
).
Ezen túlmenően ezeknek az eszközöknek mindegyike külön kézikönyvvel rendelkezik (lásd például a man reposync című részt), amely a dokumentáció elsődleges forrása, amelyre hivatkoznia kell, ha többet szeretne megtudni róluk.
Ha szán egy percet a yum-utils kézikönyvoldalának ellenőrzésére, talán talál egy másik eszközt, amelyet szeretné, ha egy külön cikkben részletesebben ismertetnénk. Ha igen, vagy ha kérdései, megjegyzései vagy javaslatai vannak ezzel a cikkel kapcsolatban, nyugodtan ossza meg velünk, hogy melyiket írja meg nekünk az alábbi megjegyzés űrlap segítségével.