Vyhledávání na webu

Jak nainstalovat a používat 'yum-utils' k udržení Yumu a zvýšení jeho výkonu


Bez ohledu na to, že Fedora začíná přijímat dnf jako nového správce balíčků a výchozí knihovnu pro správu balíčků, nenahradí nadobro starého dobrého správce balíčků yum v jiných spinoff distribucích (jako je Red Hat Enterprise Linux (RHEL) a CentOS), dokud se neprokáže, že je stejně spolehlivý jako yum a pevnější (podle wiki projektu Fedora k 15. listopadu, 2015, dnf je stále v testovatelném stavu). Vaše dovednosti yum-management vám tedy budou dobře sloužit ještě nějakou dobu.

Z tohoto důvodu vám v této příručce představíme yum-utils, sbírku nástrojů, které se integrují s yum a rozšiřují jeho nativní funkce několika způsoby, čímž je výkonnější a snadněji se používá.

Instalace yum-utils v RHEL/CentOS

Yum-utils je součástí základního úložiště (které je ve výchozím nastavení povoleno), takže jeho instalace v jakékoli distribuci založené na Fedoře je stejně snadná jako:

yum update && yum install yum-utils

Všechny nástroje poskytované yum-utils se instalují automaticky s hlavním balíčkem, který popíšeme v další části.

Prozkoumejte nástroje poskytované balíčkem yum-utils

Nástroje poskytované yum-utils jsou uvedeny na jeho manuálové stránce:

man yum-utils

Zde je 10 z těch yum nástrojů, o kterých jsme si mysleli, že by vás mohly zajímat:

1. Odlaďte balíček

debuginfo-install nainstaluje balíčky debuginfo (a jejich závislosti) potřebné k ladění v případě havárie nebo při vývoji aplikací, které používají určitý balíček.

Abychom mohli ladit balíček (nebo jakýkoli jiný spustitelný soubor), budeme také muset nainstalovat gdb (ladicí program GNU) a použít jej ke spuštění programu v režimu ladění.

Například:

gdb $(which postfix)

Výše uvedený příkaz spustí gdb shell, kde můžeme zadat akce, které se mají provést. Například run (jak je znázorněno na obrázku níže) spustí program, zatímco bt (nezobrazeno) zobrazí trasování zásobníku (známé také jako backtrace ) programu, který poskytne seznam volání funkcí, která vedla k určitému bodu spuštění programu (pomocí těchto informací mohou vývojáři i správci systému zjistit, co se v případě havárie pokazilo).

Další dostupné akce a jejich očekávané výsledky jsou uvedeny v man gdb.

2. Najděte úložiště nainstalovaných balíčků

Následující příkaz ukazuje, ze kterého úložiště byly aktuálně nainstalované balíčky nainstalovány:

find-repos-of-install httpd postfix dovecot

Pokud spustíte bez argumentů, find-repos-of-install vrátí celý seznam aktuálně nainstalovaných balíčků.

3. Odstraňte duplicitní nebo osiřelé balíčky

package-cleanup spravuje vyčištění balíčků, duplikáty, osiřelé balíčky (programy nainstalované z jiného zdroje, než jsou aktuálně nakonfigurované repozitáře) a další nekonzistence závislostí, včetně odstranění starých jader, jak ukazuje následující příklad:

package-cleanup --orphans
package-cleanup --oldkernels

Nemusíte se bát, že poslední příkaz poškodí vaše jádro. Bude to mít vliv pouze na staré balíčky jádra (verze starší než aktuálně běžící), které již nejsou potřeba.

4. Zjistěte seznam závislostí balíčku

repo-graph vrátí úplný seznam závislostí balíčků ve formátu tečka pro všechny balíčky, které jsou dostupné z nakonfigurovaných úložišť. Alternativně může repo-graph vrátit stejné informace z úložiště, pokud je použit s volbou --repoid=.

Podívejme se například na závislosti pro každý balíček v úložišti aktualizací:

repo-graph --repoid=updates | less

Ve výše uvedeném příkazu posíláme výstup repo-grafu na méně pro snazší vizualizaci, ale můžete jej alternativně přesměrovat do místního souboru pro pozdější kontrolu:

repo-graph --repoid=updates > updates-dependencies.txt

V obou případech vidíme, že balíček iputils závisí na systemd a openssl-libs.

5. Zkontrolujte seznam nevyřešených závislostí

repoclosure čte metadata nakonfigurovaných úložišť, kontroluje závislosti balíčků v nich obsažených a zobrazuje seznam nevyřešených závislostí pro každý balíček:

repoclosure

6. Jak zkontrolovat nejnovější nebo nejstarší balíčky v adresáři

repomanage se dotazuje na adresář s balíčky rpm a vrátí seznam nejnovějších nebo nejstarších balíčků v adresáři. Tento nástroj se může hodit, pokud máte adresář, do kterého ukládáte několik balíčků .rpm různých programů.

Při spuštění bez argumentů vrátí repomanage nejnovější balíčky. Pokud spustíte s příznakem --old, vrátí nejstarší balíčky:

ls -l
cd rpms
ls -l rpms
repomanage rpms

Mějte prosím na paměti, že změna názvu rpm balíčků NEOVLIVNÍ, jak funguje repomanage.

7. Dotazujte se na úložiště Yum a získejte informace o balíčku

repoquery se dotazuje yum repozitářů a získává další informace o balíčcích, ať už jsou nainstalovány nebo ne (závislosti, soubory obsažené v balíčku a další).

Například htop (Linux Process Monitoring) není v tomto systému aktuálně nainstalován, jak můžete vidět níže:

which htop
rpm -qa | grep htop

Nyní předpokládejme, že chceme vypsat závislosti htop spolu se soubory, které jsou součástí výchozí instalace. Chcete-li to provést, proveďte následující dva příkazy:

repoquery --requires htop
repoquery --list htop

8. Uložte všechny nainstalované balíčky RPM do souboru ZIP

yum-debug-dump vám umožňuje vypsat kompletní seznam všech balíčků, které jste nainstalovali, všech balíčků dostupných v libovolném úložišti, důležité konfigurace a systémových informací do zazipovaného souboru.

To se může hodit v případě, že chcete ladit problém, který nastal. Pro naše pohodlí yum-debug-dump pojmenuje soubor jako yum_debug_dump--, což nám umožňuje sledovat změny v průběhu času .

yum-debug-dump

Jako u každého komprimovaného textového souboru můžeme jeho obsah zobrazit pomocí příkazu zless:

zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

Pokud potřebujete obnovit konfigurační informace poskytnuté yum-debug-dump, můžete k tomu použít yum-debug-restore:

yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

9. Stahování zdrojových RPM z Yum Repositories

yumdownloader stahuje zdrojové soubory RPM z úložišť, včetně jejich závislostí. Užitečné k vytvoření síťového úložiště, ke kterému bude přistupovat z jiných počítačů s omezeným přístupem k internetu.

Yumdownloader vám umožňuje nejen stahovat binární RPM, ale také zdrojové (pokud je použito s volbou --source).

Vytvořme si například adresář s názvem htop-files, kam budeme ukládat RPM potřebné k instalaci programu pomocí rpm. K tomu musíme použít přepínač --resolve spolu s yumdownloader:

mkdir htop-files
cd htop-files
yumdownloader --resolve htop
rpm -Uvh 

10. Synchronizujte vzdálené úložiště Yum s místním adresářem

reposync úzce souvisí s yumdownloader (ve skutečnosti podporují téměř stejné možnosti), ale nabízí značnou výhodu. Namísto stahování binárních nebo zdrojových RPM souborů synchronizuje vzdálené úložiště do místního adresáře.

Pojďme synchronizovat známé úložiště EPEL do podadresáře s názvem epel-local v aktuálním pracovním adresáři:

man reposync
mkdir epel-local
reposync --repoid=epel --download_path=epel-local

Upozorňujeme, že tento proces bude chvíli trvat, protože se stahuje 8867 balíčků:

Jakmile bude synchronizace dokončena, zkontrolujme množství místa na disku, které využívá naše nově vytvořené zrcadlo úložiště EPEL pomocí příkazu du:

du -sch epel-local/*

Nyní je na vás, zda si toto zrcadlo EPEL chcete ponechat, nebo jej použít k instalaci balíčků namísto použití vzdáleného. V prvním případě mějte prosím na paměti, že budete muset odpovídajícím způsobem upravit /etc/yum.repos.d/epel.repo.

11. Opravte nedokončené nebo přerušené transakce Yum

yum-complete-transaction je součástí programu yum-utils, který zachycuje nedokončené nebo přerušené transakce yum v systému a snaží se je dokončit.

Když například aktualizujeme linuxové servery pomocí správce balíčků yum, někdy se zobrazí varovná zpráva, která zní takto:

Zbývají nedokončené transakce. Chcete-li je dokončit, můžete nejprve zvážit spuštění transakce yum-complete-transaction.

Chcete-li opravit takové varovné zprávy a vyřešit takový problém, objeví se příkaz yum-complete-transaction, který dokončí nedokončené transakce, najde tyto nedokončené nebo přerušené transakce yum v transaction-all* a transaction-done*, které lze nalézt v adresáři /var/lib/yum.

Spusťte příkaz yum-complete-transaction a dokončete neúplné transakce yum:


yum-complete-transaction --cleanup-only

Nyní poběží příkazy yum bez varování o neúplné transakci.


yum update

Poznámka: Tento tip navrhl jeden z našich pravidelných čtenářů Mr. Tomášv sekci komentářů zde.

souhrn

V tomto článku jsme se zabývali některými z nejužitečnějších nástrojů poskytovaných prostřednictvím yum-utils. Úplný seznam najdete na manuálové stránce (man yum-utils).

Každý z těchto nástrojů má navíc samostatnou manuálovou stránku (viz například man reposync), která je primárním zdrojem dokumentace, na který byste se měli obrátit, pokud se o nich chcete dozvědět více.

Pokud věnujete chvíli kontrole manuálové stránky yum-utils, možná najdete další nástroj, kterému byste rádi popsali podrobněji v samostatném článku. Pokud ano, nebo pokud máte dotazy, komentáře nebo návrhy k tomuto článku, neváhejte nám dát vědět, které z nich, tím, že nám pošlete poznámku pomocí formuláře pro komentáře níže.