Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.
Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).
Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Organizace Apache Software Foundation (ASF) vydala verzi 22 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Společnost AMD na veletrhu Computex 2024 představila (YouTube) mimo jiné nové série procesorů pro desktopy AMD Ryzen 9000 a notebooky AMD Ryzen AI 300.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána ve verzi 4.10.0 . Přehled novinek v ChangeLogu. Vypíchnout lze Wayland backend pro Linux.
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)