Vyčištění systému od nepotřebných balíků

Založil Roman Horník, 31. 03. 2020, 23:36:20

Předchozí téma - Další téma

Roman Horník

Při správě softwaru, tj. instalaci, odinstalaci nebo aktualizaci, se sem tam stane, že u balíku jsou pozměněny závislosti, kdy přestane záviset na jednom a naopak si vyžádá balík jiný. Ideálně by se přebytečný balík měl odstranit, nebo alespoň nabídnout k odstranění, avšak málokdy tomu tak je. A tak si po čase udržujeme a aktualizujeme balíky, zpravidla knihovny, co jsou nám i softwaru naprosto k ničemu.
Nejde tady o místo, taková knihovna má obvykle pár desítek kilobajtů, avšak mívá svoje závislosti a kvůli nim nainstalované další a další  zbytečné balíky. Mimo to, občas se stane, že některý z těchto balíků blokuje aktualizaci jiného, který s ním nemá nic společného, neboť může mít v závislostech některý z pro systém důležitý balík (třeba libc6) konkrétní verze.
Když jsou závislosti balíku určeny řádně, správce balíků nám přebývající nabídne k odstranění, jenže, protože je realita jiná, je vhodné se jich zbavovat alespoň ručně. Pro tenhle účel se dobře hodil program gtkorphan, avšak jeho vývoj byl dávno ukončen a žádnou jeho adekvátní grafickou náhradu jsem nenašel.
Nicméně pro textové prostředí existuje gtkorphan. Jeho úkolem ovšem není přebytečné balíky odstranit, ale pouze zobrazit, proto jeho výstupem, seznamem zbytečných balíků, musíme po přezkoumání seznamu z deborphanu nakrmit apt/apt-get/aptitude - tak třeba apt (syntaxe je u jiných stejná):

# apt purge `deborphan` # obrácený apostrof se zadává pomocí [R-Alt]+[H]. Místo `deborphan` můžete použít $(deborphan)

Protože deborphan nezkoumá závislosti přebytečných balíků, po dalším spuštění příkazu se mohou objevovat další, proto v případě potřeby opakujte. Rovněž vám může apt{-get|itude} nabídnout další balíky k odstranění, tyto se odstraní příkazem:

# apt autoremove

Tohle mi párkrát pomohlo, když zbytečný balík blokoval aktualizaci několika jiných z důvodu výše uvedeného.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

radek_dr

Díky, může se hodit, i když aktuálně nehledám, ale.... Jinak, skvělá "RAM" v podpisu :D
Acer Swift1, N4200 2.5 GHz max., 4GB RAM, 64+250GB SSD, Intel graphic, Debian 12 Cinnamon
Intel NUC,  Celeron J3455, 8GB RAM, 256GB SSD, Debian 11 server, Apache, Nginx proxy, KVM...
AS8940G, Intel i7 ..., LM19 xfce

Nikdo není dokonalý !

Roman Horník

#2
Ručním čištěním jsem toho odstranil daleko víc, asi 400-500 balíků, ale na to se potřebuješ hodně nudit a mít ponětí o tom, co potřebuješ a co ne. Aktuálně mám pro svoje potřeby plně nabombenej systém s pouze 1298 balíkama ;).

Jo a vítej na fóru! 8)
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

radek_dr

Dík.
Já se snažím instalovat přes netinst.iso, tam si vyberu jen nejnutnější. Ovšem problém je, že teď v notasu nemám LAN, pouze wifi a ještě Intel - tudíž klasicky Debianem nepodporovanou. Zatím jsem to řešil tak, že nainstaluji Deb-xfce, pokud možno s minimen, pak nainstaluji z *.deb balíku "iwlwifi" (nemusím hledat, která to je :)) a pak odinstalovávám a instaluji...., prostě jsem cvok. Ale na pidi serveru mám lanku a zásadně - když už je nutno - instaluji z netu přes SSH.
Acer Swift1, N4200 2.5 GHz max., 4GB RAM, 64+250GB SSD, Intel graphic, Debian 12 Cinnamon
Intel NUC,  Celeron J3455, 8GB RAM, 256GB SSD, Debian 11 server, Apache, Nginx proxy, KVM...
AS8940G, Intel i7 ..., LM19 xfce

Nikdo není dokonalý !

Roman Horník

Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

piquick

Je to bomba. vyčistilo to 834 MB dat. A system stále funguje...

Roman Horník

#6
Kdybys chtěl víc, nastartuj Synaptic a zkoušej odinstalovat následující:
1) V nastavení odškrtni Považovat doporučené balíky za závislé
2) Dole vlevo zvol Stav
3) Balíky interpretrů (Python, Perl, Ruby,...)
4) Pluginy programů, který nepoužíváš
5) Metabalíky (hledej termíny jako "transitional", "dummy", "metapackage",...)
6) Vývojový balíky, jestli nekompiluješ a jestli nemáš DKMS (končej na "-dev")
7) Balíky s dokumentací - "-doc"
8) Knihovny (libblablabla)

U toho je nutný fakt přemejšlet a číst, co Synaptic říká. A mít na to nervy.
Bohužel, do Synapticu se před pár lety pustili "ubunťáci" (digitální komunisti, co všemu "rozuměj" a co se do všeho musej srát), Synaptic má pár nepříjemných chyb:
1) Zapomíná závislosti - něco by přes ně nemělo jít odstranit, Synaptic by měl jako za starejch časů upozornit, přesto k odstranění označit jde, čímž rozbiješ závislosti závisejících balíků
2) Když se něco takovýho stane, dřív stačilo [L-Ctrl]+[Z] - teď to neplatí, protože je retardovanej a pamatuje si chybu přes několik dalších akcí, takže musíš vrátit, se staženou prdelí označovat další balíky (přitom je vyšší riziko, že zase zblbne závislosti), nebo se vrátit několikrát a akce až na poslední zopakovat
3) Když začnou z výsledků vyhledávání mizet řádky, nediv se
4) Všechno v pořádku? Klikneš na Použít a vyskočí chyba. Tak ji musíš zavřít a kliknout na Použít znovu
5) Když začne hysterčit, začne nabízet k odstranění i ty balíky, co vůbec nejsou v závislostech

Takže musíš po částech a dávat si fakt pozor. A protože mám nervy jako ze železa, takhle se mi podařilo odstranit pětistovku balíků, co nepotřebuju. Když se náhodou stane, že nějakej program nepůjde spustit, spusť ho v terminálu a tam se vypíše chyba, že třeba chybí knihovna libknihovna.so - nainstaluj libknihovna a je po problému, nebo, když nebudeš vědět, se tady zeptej.
Jak jsem psal v pilotním příspěvku, nejde v první řadě o úsporu místa, ale o prevenci možných závislostních problémů v budoucnosti. A taky i u nepotřebnejch balíků můžou vznikat časem nový závislosti, což znamená natahování dalších balíků.
Podle mně je systém jen prostředím pro spouštění uživatelských programů. Musí zabrat v paměti i na disku co nejmíň místa a vůbec okupovat co nejmíň systémovejch prostředků, aby co nejvíc zbylo pro Tebe a Tvoje programy.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

radek_dr

Citace od: Roman Horník kdy 15. 04. 2020, 18:49:49
S firmwarem by to nešlo?

Určitě ano, ale nikdy se mi ho nepodařilo přidat. Dám ho na flashku a na vyžádání připojím - a nic, stále dokola "Vložte médium s firmwarem" nebo tak něco. Přitom je 100% správný, když ho přidávám dodatečně do už nainstalovaného systému funguje. Nevím v čem je problém. S tím *.deb balíkem se nainstaluje taky a nemusím nic řešit - nainstalovat, restart, zadat heslo k síti a jede. Nejjednodušší varianta.
Acer Swift1, N4200 2.5 GHz max., 4GB RAM, 64+250GB SSD, Intel graphic, Debian 12 Cinnamon
Intel NUC,  Celeron J3455, 8GB RAM, 256GB SSD, Debian 11 server, Apache, Nginx proxy, KVM...
AS8940G, Intel i7 ..., LM19 xfce

Nikdo není dokonalý !