Portál AbcLinuxu, 3. května 2025 10:40
Tak zo zaujímavosti si zistíme kedy som systém nainštaloval: viď. príkaz. U mňa to bolo:
Filesystem created: Mon Feb 25 20:20:27 2019
Vypíš všetkých balíkov:
apt list --installed
Zoznám si uložíme do súboru:
apt list --installed > i.txt
Tak vypíšeme si štatistiku, z ktorej verzie Debianu sú nainštalované balíky (programy na konci blogu):
Takže moja štatistika:
4574 unstable 4253 testing 745 stable 229 oldstable 1 unknownVšetkých nainštalovaných balíčkov v systéme bolo 4669.
Kedže niektoré balíky môže byť súčasné pre testing a aj pre stable (preto nesedí súčet, že sa rovná 4669), tak tu máme výpis, kam ktoré balíky patria:
3519 now, unstable, testing 542 now, unstable, testing, stable 325 now, unstable 180 now, unstable, testing, stable, oldstable 45 now, oldstable 21 now 14 now, stable 12 now, testing 6 now, unstable, stable 2 now, stable, oldstable 1 now, unknown 1 now, unstable, oldstable 1 now, unstable, stable, oldstable
Tak si informatívne vypíšem balíky, ktoré sú len oldstable:
grep '/oldstable,now ' i.txt |tr / ' ' |awk '{print $1}'
Dám odinštalovať:apt-get -y remove `grep '/oldstable,now ' i.txt |tr / ' ' |awk '{print $1}'`
Upozornenie: Pred použitím je nutné vytvoriť súbor i.txt.
<?php // Licencia: CC0 function get_repositary($line) { $start=strpos($line, '/'); $end=strpos($line, ' ', $start); $start++; $repositary_txt=substr($line, $start, $end-$start); $repositary=explode(',', $repositary_txt); $repositary=array_unique($repositary); return $repositary; } $txt=file_get_contents("i.txt"); $lines=explode("\n", $txt); unset($lines[count($lines)-1]); unset($lines[0]); $lines=array_merge($lines); $statistic=array(); foreach($lines as $line) { $repositary=get_repositary($line); foreach($repositary as $repos) if(isset($statistic[$repos])) $statistic[$repos]++; else $statistic[$repos]=1; } if(isset($statistic['now'])) unset($statistic['now']); arsort($statistic); foreach($statistic as $name => $count) echo "$count\t$name\n";
<?php // Licencia: CC0 function get_repositary($line) { $start=strpos($line, '/'); $end=strpos($line, ' ', $start); $start++; $repositary_txt=substr($line, $start, $end-$start); $repositary=explode(',', $repositary_txt); $repositary=array_unique($repositary); sort($repositary); return implode(', ', $repositary); } $txt=file_get_contents("i.txt"); $lines=explode("\n", $txt); unset($lines[count($lines)-1]); unset($lines[0]); array_merge($lines); $statistic=array(); foreach($lines as $line) { $repositary=get_repositary($line); if(isset($statistic[$repositary])) $statistic[$repositary]++; else $statistic[$repositary]=1; } arsort($statistic); foreach($statistic as $name => $count) echo "$count\t$name\n";
Tiskni
Sdílej:
chtělo by to velmi důkladný jarní úklidMáš nějaký tip, jak na to? Používáš nějakou utilitu na vyhledávání nepoužívaných balíků, nebo tak?
apt-cache rdepends --installed, ale to moc nefungovalo "aptitude why abiword" bylo lepší ale pomalé "apt-rdepends -r balíček" je taky divné this: for p in `dpkg -l | grep ^ii | cut -d " " -f 3 | grep -E "^lib"`; do echo "if [ \`apt-get -s purge $p | grep -E \"^(Purg|Inst|Conf)\" | wc -l\` -eq 1 ]; then echo $p; fi"; done | parallel
apt-mark showmanual
? Sice tam můžeš mít balíky na kterých něco závisí, ale to je jednak asi relativně vzácné (napřed nainstaluješ A, až potom B, které shodou okolností vyžaduje A), jednak už není problém to zkontrolovat před případným odinstalováním (třeba tím aptitude why
)…
apt-mark showmanual | wc -l 456Neřekl bych. Evidentně tam jsou i balíčky na kterých závisejí manuálně nainstalované balíčky. Tj jasně, šlo by to manuálně projít, označit balíčky, které opravdu uživatelsky chci, potom by to spočítalo závislosti a vše ostatní odstranilo (s filtrací na essential). Ale to už by skoro byla jednodušší nová instalace
deborphan
, který ve výchozím stavu vypsal knihovny, na kterých nic nezávisí a měl přepínač, který umožňoval vypsat i všechny nezávisející balíčky (k manuálnímu posouzení). Nějakou dobu už ale (alespoň na mojí instalaci) nefunguje. A jasně, musel se i na knihovnách spouštět opakovaně.
Dneska občas něco najde aptitude
, něco apt autoremove
, ale je to bída.
nainstalovanejch aktualne 4033 balickuAsi něco dělám špatně, protože pracovní desktop používám pro vývoj v pythonu a nově i v golangu, tedy "věci pro kompilaci" jsou automatickou součástí těch 1847 (z toho 1005 libs) + další věci jako Blender, Audacity, LibreOffice ani nepočítám apod., rozhodně se neomezuju. Ale co rozhodně neinstaluju jsou věci, které si s sebou berou "půlku" KDE nebo GNOME, protože mi nepřijde normální, kdy obyč appka typu krusader potřebuje 200 knihoven z KDE. (Používám double commander, kde krom závislostí na xkách to potřebuje JEDNU GTK knihovnu.)
se nechci probirat tim co z nich pak budu nebo nebudu potrebovatJak probírat? Proč? Přece instaluju to, co potřebuju ke své činnosti, vůbec nevidím důvod se probírat dalšími "doporučenými" balíčky.
neujizdim na nizkem poctu balicku za "kazdou" cenuJá taky ne.
doublepanel manager pouzivam mcNa terminálu jo, ale má některé vlastnosti, které nemůžu vystát. Například při přejmenování na místě se fokus nehodí na přejmenovaný soubor, tak jak to mají všechny dvoupaneláky co znám (Salamander, TC, DC, asi i ten Krusader), ale focus zůstane na svém místě dle pořadí. Nedovedu si to vysvětlit, buď lidi málo přejmenovávají a nebo potom už nepracují s tím co přejmenovali (což je ještě divnější). No nic.
jako chápu že třeba natom serveru každej nástroj/balíček navíc muže bejt nějaká díra/slabina navíc nebo se muže hodit útočníkoj. nóó ale na vosobním počítadle zas třeba tak moc nějaký balíčky navíc nevaděj ne???????? :O :O :O :O
LC_ALL=C apt list --installed | grep -v 'Listing...' | cut -d/ -f2 | cut -d" " -f 1 | sort | uniq -c | sort -hr
3 stable,stable,unstable,unstable,now
dušane taky bys moch udělat statistiku podobnejch zahraničních NEanglickejch linuxovejch portálů jako sou root nebo abclinuxu jestli tenhleten propad se děje jenom u nás nebo seto děje jakoby tak nějak všude :O :O
to bylo jakoby na debiana :D ;D
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.