Weboldal keresés

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 telepíti a debuginfo csomagokat (és azok függőségeit), amelyek a 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 <1. csomag> <2. csomag> … csomagok melyik tárhelyről lettek telepítve:

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-- néven nevezi el, ami lehetővé teszi számunkra a változások időbeli követését. .

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.