Vyčistěte si Debian: pryč s nepotřebnými balíčky a dalším nepořádkem

Petr Krčmář 3. 7. 2012

Jednu linuxovou instalaci můžete používat mnoho let a stále bude plně funkční. Pokud budou správně fungovat aktualizace, je možné kontinuálně používat jeden systém prakticky nekonečnou dobu. Vzniká v něm ovšem tu a tam nějaká hromádka nepořádku, kterou je třeba vymést. Poradíme vám, jak na Debian a jeho deriváty.

Linuxové systémy jsou známé tím, že mohou běžet mnoho let bez reinstalace nebo restartu. Takový systém je ale po letech plný starých nepoužívaných balíčků, různých cache, odkládacích adresářů a dalšího balastu, který jen zabírá místo na disku a třeba v databázi balíčků. Čím víc se systémem experimentujeme a přidáváme do něj aplikace a zdroje, tím víc špíny zůstává v koutech.

Naštěstí máme k dispozici balíčkovací systém, který dokáže identifikovat každý soubor na disku a přiřadit jej ke konkrétnímu balíčku. U balíčků zase můžeme vysledovat jejich závislosti a rozhodnout, zda ten či onen kus software je vůbec ještě v systému potřeba. Pokud známe ty správné příkazy, můžeme to navíc udělat jednoduše a v klidu.

Podobný problém se jistě týká i dalších distribucí, já jako debianista se budu věnovat své oblíbené distribuci. Následující návody jsou proto určeny pro distribuci Debian, ale stejně dobře budou fungovat i v Ubuntu (a dalších derivátech). Konec konců Ubuntu je uvnitř z 93 % Debian.

Dále budu používat utilitu Aptitude, protože je podle (nejen) mého názoru lepší a inteligentnější než apt-get. Je to také jeden z prvních balíčků, které instaluji do cizích počítačů s Ubuntu. Pokud chováte k Aptitude nepřekonatelný odpor a chcete používat apt-get, můžete příkazy ve zde uvedených návodech zaměňovat. Oba programy používají stejnou základní syntaxi.

Vysypání cache balíčkovacího systému

Balíčkovací systém Debianu si všechny stažené balíčky ukládá do adresáře /var/cache/apt/archives pro případné pozdější použití. Obsah tohoto adresáře s každou aktualizací či doinstalací balíčků roste a roste. Jednou za čas se jej proto vyplatí buďto ručně promazat nebo to nechat na systému:

# aptitude clean

Pokud se vám zdá barbarské mazat celou cache, můžete použít inteligentní mazání, které odstraní ty balíčky, které už stejně nejsou na serverech k dispozici:

# aptitude autoclean

Pokud chcete, můžete v adresáři udržovat pořádek automaticky, abyste na to nemuseli myslet. Uklízečku tam můžete posílat pravidelně. Stačí do souboru /etc/apt/apt.conf.d/10periodic připsat

APT::Periodic::AutocleanInterval "7";

A apt jednou za týden spustí autoclean za vás. Můžete také jednoduše omezit velikost, kterou může adresář v systému zabírat (v MB). Ve stejném adresáři je soubor 20archive a v něm nastavte:

APT::Periodic::MaxSize "500";

Tím zvolíte limit půl gigabajtu.

Odstranění starých balíčků

Pokud od instalace svého systému poctivě používáte Aptitude, máte systém v lepším stavu než s apt-get. Aptitude si totiž udržuje informace o tom, které balíčky jste si explicitně vyžádali k instalaci a které přijely jako závislosti. Pokud některý z vyžádaných balíčků odinstalujete, balíčkovač rovnou nabídne k odstranění i další balíky, které už nejsou potřeba.

Přesto tento systém není vždycky dokonalý a pokud jste míchali Aptitude a apt-get, jste stejně nahraní. Existuje ale šikovný balíček deborphan, který umí v systému vyhledávat a vypsat sirotky. Stačí jej klasicky nainstalovat a spustit, je to bezpečné.

Program jednoduše vypíše ty balíčky, které podle něj už nejsou v systému potřeba. Obvykle jde o různé knihovny a podpůrné balíčky. Někdy se ale může stát (jako teď mně), že se ve výpisu objeví nějaký užitečný balíček (u mě program qtpfsgui. Protože jej chci zachovat, připíšu ho do souboru /var/lib/deborphan/keep. Co řádek, to název jednoho balíčku. Od této chvíle je balík ignorován a na výstup deborphanu se nedostane. Vždy doporučuji kontrolovat, co je doporučeno k odinstalaci, abyste se nedočkali překvapení.

Pokud se vám výpis líbí, můžete jím rovnou nakrmit aptitude:

# aptitude remove `deborphan`

Standardně jsou prohledávány jen balíčky v sekci libs, kde bývá zbytků nejvíce. Můžete ale zvýšit šance své uklízečky a zkusit i další sekce, pomocí parametru --guess-něco. Možností je celá řada, najdete je v manuálové stránce. Jen namátkou: common, data, debug, dev, doc, kernel, dummy, mono, perl, python, ruby a další. Velmi dobrým kandidátem je sekce data, kde najdete řadu zapomenutých věcí. Můžete také zadat --guess-all, ale to už si musíte dát velký pozor na to, co má zmizet. Mně to třeba doporučuje odstranit vim-full, což bych dost nerad.

Až se doporučené balíčky odstraní, spusťte příkaz znovu. Velmi často se odstraněním v první vlně uvolní další závislosti a objeví se další balíčky (často víc, než bylo těch předtím). Abyste systém vyčistili, musíte proceduru několikrát zopakovat, až deborphan vypíše prázdný výstup.

Poznámka: Deborphan není jediný zástupce „čističů“. Existují i další alternativy jako cruft či debfoster. Vyzkoušejte je, ale buďte při jejich použití opatrní.

Odstranění starých konfigurací

Při klasické odinstalaci ( remove) balíčku ze systému se standardně nemaže konfigurace. Tak je to zařízeno schválně, protože konfigurace zabírají velmi málo místa a někdy je dobré je mít k dispozici a vrátit se k nim. Občas ale dostanete do správy tak zaneřáděný systém, že je potřeba haldu starých věcí smazat.

widgety

Existuje několik způsobů, můžete si na to napsat skriptík, který vyhledá nevyčištěné balíčky a podobně. Nejelegantnější řešení ale spočívá ve využití vyhledávacích vzorů Aptitude, které vám umožní balíčky vyhledat a rovnou na nich pustit správnou akci ( purge). Před takovou změnou určitě proveďte zálohu konfiguračních souborů.

# aptitude purge ~c

Čistěte, ale opatrně

Těmito postupy si můžete krásně vyčistit systém, ale zároveň jej můžete nepříjemně poškodit. Vždycky proto raději hlídejte, co se ten který příkaz snaží udělat a sledujte, zda je to opravdu to, co chcete. Tak příjemnou údržbu.

Našli jste v článku chybu?
Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

DigiZone.cz: RRTV: frekvence pro Country Radio

RRTV: frekvence pro Country Radio

Podnikatel.cz: Rohlik.cz testoval roboty pro rozvážku

Rohlik.cz testoval roboty pro rozvážku

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Podnikatel.cz: I vám můžou vykrást značku. Braňte se

I vám můžou vykrást značku. Braňte se

Měšec.cz: „Ukradli“ jsme peníze z bezkontaktních karet

„Ukradli“ jsme peníze z bezkontaktních karet

Lupa.cz: Odkazy na pirátský obsah mohou být nelegální

Odkazy na pirátský obsah mohou být nelegální

Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

Root.cz: Podívejte se na shořelé Samsung Note 7

Podívejte se na shořelé Samsung Note 7

DigiZone.cz: Budoucnost TV vysílání ve Visegrádu

Budoucnost TV vysílání ve Visegrádu

Podnikatel.cz: Tyto pojmy k #EET byste měli znát

Tyto pojmy k #EET byste měli znát

Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Vitalia.cz: Běháte a nehubnete? 6 častých chyb

Běháte a nehubnete? 6 častých chyb

Vitalia.cz: Výživový poradce: Tyhle fešáky jedu celoročně

Výživový poradce: Tyhle fešáky jedu celoročně