Byl vydán Debian 12.10, tj. desátá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Byla vydána nová verze 4.5 svobodného notačního programu MuseScore (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Byla vydána nová verze 8.6.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2025. Na programu je celá řada zajímavých přednášek a workshopů. Vstup je zdarma. Přednášky lze sledovat i online na YouTube.
Byla vydána nová verze 2.49.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Premiér Petr Fiala (ODS) dnes na síti X vyloučil, že by za jeho vlády mohla začít platit vyhláška, podle níž by poskytovatelé internetového připojení měli uchovávat adresy internetových stránek, na které se lidé připojují.
Flock 2025, tj. konference pro přispěvatele a příznivce Fedory, proběhne od 5. do 8. června v Praze.
Zemřel Mark Klein, který dlouhá léta pracoval pro telekomunikační firmu AT&T a proslavil se jako whistleblower, když zveřejnil informace o spolupráci AT&T s agenturou NSA. Cílem spolupráce bylo sledovat veškerou komunikaci občanů za pomocí zařízeních v místnosti 641A. O spolupráci obou subjektů napsal knihu Wiring Up The Big Brother Machine...And Fighting It.
Byla vydána nová verze 16 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Texas Instruments představil nejmenší mikrokontrolér na světě MSPM0C1104. Je o 38 % menší než současné nejmenší mikrokontroléry. Má pouze 1,38 mm².
Tiskni
Sdílej:
pacman -Scc
minimálně jednou denně.
Skutočný borec neskrblí a má na root partition dosť miesta. Následne sa vyhne takýmto zbytočnostiam
Fráze "poriadok v systéme" som nikdy nerozumel. To si myslíš, že tie staré balíky v cache začnú časom mutovať a vytvoria skynet?
Aha, takže je to čisto emocionálna záležitosť. Tak to potom áno, do toho ti kecať nebudem
/tmp/yaourt-tmp-<user>/
, takže pokud aspoň občas restartujete, není s tím problém.
echo "tmpfs /tmp tmpfs defaults 0 0" >> /etc/fstab
Hezké. Jsem zase chytřejší. Co takhle to vydat jako článek? Je to hezky napsáno. Díky.
#!/bin/bash OUTFILE="${HOME}/orphan_files.txt" COMMAND='eval DIR=`pwd` ; touch ...mark ; for NAME in `ls -a` ; do [ -f "$NAME" ] && echo "${DIR}/${NAME} ::: `pacman -Qo "$NAME" 2>&1`" >> $OUTFILE ; echo "${DIR}/${NAME}" ; [ -d "$NAME" -a ! -h "$NAME" -a ! -f "${NAME}/...mark" ] && ( cd "$NAME" ; $COMMAND ; ) ; done ; rm ...mark' for SUPERNAME in bin etc lib opt sbin usr; do ( cd "/$SUPERNAME" ; $COMMAND ; ) ; done
Třeba tohle odhalí spoustu balastu, o kterém člověk ani netuší. Stačí grepovat v orphan_files.txt
('No package owns'...). Bude tam spousta souborů, které po sobě nechaly dávno odstraněné balíčky. (Třeba proto, že je autor balíčku chybně označil jako konfigurační.) Navíc každý binární instalátor (například Intel Compiler) taktéž vygeneruje spoustu souborů.
Takové prohledání soubor po souboru samozřejmě nevyřeší všechno. Postup se dá aplikovat jenom v adresářích, kam píše pouze pacman. I v takovém /etc
je spousta souborů, které pacman nezná, a přesto jsou důležité. Nemluvě o /var
. Tam se dá balast od používaných dat odlišit těžko.
Už se těším, až jednou bude pacman používat nějakou databázi. Bez ní ten skript běží děsně dlouho. Trik s ...mark
je hnusný (a vyžaduje práva k zápisu). Určitě to jde udělat stokrát lépe (přes extended attributes), ale nechce se mi. Kdo si myslí, že nemá v adresářových symlincích žádný cyklus, ten je hodně naivní. Zjistit to při padesáti tisících instancích bashe může být trochu pozdě.
(Pokud nemáte 32-bitové process ID, už se neforkne nic. Ani kill. (A proto je tak dobré mít na sdílených vzdáleně přístupných strojích PID namespace, omezení počtu procesů a další rozumná nastavení. Jinak je zabití celého systému tak snadné jako
for (;;) {fork();}
.))
#!/bin/sh find $@ -type f -print0 | xargs -0 pacman -Qo | grep '^error
Cílem té mojí verze bylo spíš pohrát si s rekurzí v shellu než vymýšlet nějaké rozumné a efektivní řešeiní. BTW, jde to i bez
xargs
.
find $@ -type f -exec pacman -Qo '{}' '+' | grep '^error'
Akorát, že verze s xargs je o hodně rychlejší.
Právě jsem to změřil. Střídavě jsem pouštěl jak tu mojí verzi s xargs, tak tu tvou s exec. Pokud nepočítám první spuštění tak každá celkem běžela 3×.
Výsledky na /usr/bin jsou:
1m 26s
verze s xargs
3m 40s
verze s exec
Akorát, že verze s xargs je o hodně rychlejší.
Kdy? Za jakých podmínek? Na jakém stroji? Verze s xargs
může být na multiprocesoru rychlejší, protože dělá fork()
paralelně, zatímco find
může běžet dál. Otázka je, jak by to dopadlo s jedním procesorem.
Na mém stroji (Core i7, 4 jádra po 2 vláknech) to vypadá takhle:
[root@octopus usr]# time find bin -type f -print0 | xargs -0 pacman -Qo | grep '^error' real 2m29.960s user 2m29.277s sys 0m0.070s
[root@octopus usr]# time find bin -type f -exec pacman -Qo '{}' '+' | grep '^error' real 2m35.657s user 2m34.093s sys 0m1.417s
První verze tedy je o něco rychlejší, ale rozhodně ne mnohem rychlejší. Mimochodem, verze s -exec
má zjevně naprosto nehoráznou spotřebu systémového času. Vypadá to, jako by snad to '+'
nedělalo, co má.
Chtělo by to podívat se, kolikrát se tam zavolá fork()
. Na OpenSolarisu je to DTrace skript na jednu řádku, ale nevím, jak to změřit na Linuxu. A nechce se mi. Ale třeba to někoho bude zajímat a zkusí to.
Teď koukám, že ty jsi použilKdy? Za jakých podmínek? Na jakém stroji? Verze s
xargs
může být na multiprocesoru rychlejší, protože děláfork()
paralelně, zatímcofind
může běžet dál. Otázka je, jak by to dopadlo s jedním procesorem.
-exec pacman -Qo '{}' '+'
kdežto já -exec pacman -Qo '{}' ';'
. To bude důvod tak výrazného rozdílu v rychlosti u mě.
for NAME in `ls -A`
s "-a" to poleze i do ".." a pak ti to prošmejdí celý systém šestkrát dokola ;)
Ne, neprošmejdí. Protože v ..
bude ...mark
.
...mark
dával do /
ručně, když jsem to naposledy spouštěl. Nebo ten skript vypadal tenkrát jinak, co já vím. Moc to nepoužívám, protože to trvá nekonečně dlouho a za pět ušetřených megabytů to většinou nestojí.
man
, tady je to pekne prehledne. Nasel jsem ale asi logickou chybu:
Tohle ovšem provádějte jen tehdy, nebude-li opravdu downgrade potřeba, čili obecně cache mažeme před upgradem, nikoli těsně po.Spis opacne? Prece az po upgradu si musim vse par dnu vyzkouset a kdyz vse funguje, tak pak muzu smazat cache se starsimi verzemi.
Spis opacne? Prece az po upgradu si musim vse par dnu vyzkouset a kdyz vse funguje, tak pak muzu smazat cache se starsimi verzemi.Nó tak já jsem předpokládal, že před updatem vše funguje. Ve chvíli, kdy vše funguje, je bezpečné staré balíky vymazat - ty dobře fungující v cache zůstanou (leda když člověk maže -Scc). Po upgradu ale nemusí vše fungovat - právě až po těch pár dnech... nebo taky týdnech...
-Sc
ponecha aktualni balicky (aktualni verze) a smaze jen stare nepouzivane.
cut -d " " -f 1
se dá nahradit parametrem -q
pro pacman.
vim /var/db/pkg/world
paludis --uninstall-unused
pacman -Rs $(pacman -Qdtq)