Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.
Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.
Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).
Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.
NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.
IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Spkg jsem předevčírem dostal do stavu, kdy jsou všchny důležité vlasntosti naimplementované a už chybělo jen testování na spoustě balíčků. No a už nechybí. :)
Upgrade a instalace potřebovaly znovu otestovat a tak jsem nainstaloval z DVD Slackware-10.1 všechny balíčky z kategorií a, ap, d, l a n. To dává po instalaci 295 balíků zhruba 1GB dat (70 tisíc souborů). Instaloval jsem pomocí installpkg
a spkg -i
a následně porovnal výstup příkazu tree -psufiga
a find . -type f | xargs md5sum
. Na první pohled to nevypadalo moc nadějně. Instalace pomocí spkg vytvořila mnoho symlinků navíc oproti installpkg, ale to bylo způsobeno tím že v installpkg je chyba, protože ldconfig se nespouští pro adresář do kterého se instaluje (/root), ale vždy pro kořenový adresář. Což není moc platné. Po spuštění ldconfig -r /root
a opětovném porovnání výstupu psufigy, už bylo vše pozitivnější.
Defakto se pouze lišily velikosti adresářů, protože spkg při instalaci či upgrade, pokud již instalovaný soubor existuje, nejprve vytvoří dočasný soubor a až po dokončení zpracování tgz balíku všechny cílové soubory nahradí. Vytvářením dočasných souborů nám o něco nakynou adresáře ve kterých se tyto soubory vytvářejí. Pokud pak dojde k přerušení instalace/upgrade uživatelem, nebo nesplněním nějaké podmínky pak se prostě odstraní všechny soubory které byly do té doby vytvořeny a vše je jako před instalací. Čili je možně bezpečně přerušit dlouho trvající upgrade mnoha balíků bez obav o konzistenci zrovna upgradovaného balíku a prostě pokračovat později. Cílem vývoje samozřejmě nebylo aby si člověk mohl po zahájení upgrade v 8 hodin ho mohl ve 12 přerušit a pokračovat ráno, ale upgrade balíků výrazně zrychlit.
Upgrade test probíhal tak, že jsem provedl upgrade zmíněných kategorií z slackware-10.1 na slackware-10.2 přímo z DVD. V řeči příkazů, tedy:
ROOT=/root1 upgradepkg {a,ap,d,l,n}/*.tgz
a pomocí spkg
spkg -u -v -r /root2 {a,ap,d,l,n}/*.tgz
Poté jsem opět porovnal výstupy psufigy a md5sumu pro /root1 a /root2. Výstup těchto příkazů byl. bez neočekávaných rozdílů, kromě jednoho souboru, který je vytvářen instalačním skriptem bindu (/etc/rndc.key) a má být pro každou instalaci jiný.
Nakonec jsem udělal remove test, abych ověřil že spkg -d
funguje stejně jako removepkg
. Opět s porovnáním stavu adresářů /root1 a /root2. Test spočíval v odstranění všech balíků ze skupiny d (39 balíků).
Co nebylo stejné byly časy potřebné pro provedení potřebných operací. Tady jsou čísla:
Příkaz | REAL | USER | SYS |
---|---|---|---|
ROOT=/root1 installpkg {a,ap,d,l,n}/*.tgz | 16m4s | 7m42s | 3m11s |
spkg -i -v -r /root2 {a,ap,d,l,n}/*.tgz | 3m41s | 54s | 38s |
ROOT=/root1 upgradepkg {a,ap,d,l,n}/*.tgz | 33m50s | 18m30s | 6m45s |
spkg -u -v -r /root2 {a,ap,d,l,n}/*.tgz | 4m39s | 0m50s | 0m40s |
ROOT=/root1 removepkg `cat pkglist` | 6m6s | 3m43s | 1m3s |
spkg -d -v -r /root2 `cat pkglist` | 11.8s | 0.67s | 1.18s |
Rozdíl oproti testům v mém předchozím příspěvku je v tom, že jsem tentokrát spouštěl instalaci z DVD, kde jsou přítomné soubory s popisem balíku, takže skripty installpkg a upgradepkg měly nyní o něco snažší práci než v předchozím případě, kdy jsem je spouštěl z mého mirroru slackware-current na disku, kde ony soubory nemám. A spkg měl o něco komplikovanější práci, protože jsem nepoužil parametr --no-ldconfig, takže ldconfig se spouštěl po každém nainstalovaném balíku. Spustit ldconfig trvá zhruba 100ms, takže to dává 30s zbytečně navíc pro jak installpkg tak spkg. Ovšem je rozdíl jestli je to 30s z 16m, nebo 30s z 3m40s. Při použití spkg DVD-ROM mechanika seekovala jak o život, takže by se někde v jejím okolí dalo hledat úzké herdlo.
Malá poznámka na závěr pro ty co stále chtějí používat pkgtools. Spkg trpí stejným problémem jako pkgtools a to tím, že databáze balíčků čítá např. na mém systému 600 malých souborů. A z těchto 600 souborů je potřeba před zahájením upgrade načíst seznam souborů, které jsou v systému nainstalovány. To na mém systému, který už zažil upgrade zhruba 1400 balíčků trvá zhruba 12s, když ty soubory ještě nejsou v cache. Tento čas lze poměrně dobře srazit (u mě na 3s - z toho 800ms je dáno čistě zpracováním obsahu souborů - tj. omezeno výkonem procesoru, čili zrychlení se pohybuje někde v řádu 5x) pomocí drobné "defragmentace" adresářů /var/log/packages a /var/log/scripts. Zde je program defrag.sh:
#!/bin/sh -e rm -rf /var/log/packages~ /var/log/scripts~ cp -a /var/log/packages /var/log/packages~ cp -a /var/log/scripts /var/log/scripts~ rm -rf /var/log/packages /var/log/scripts mv /var/log/packages~ /var/log/packages mv /var/log/scripts~ /var/log/scripts
Nechce k tomu někdo dopsat grafické rozhraní s kostičkama a progressbarem?
Tímto se spkg velmi přiblížil k verzi 1.0. Ještě to budu nějaký čas používat kde budu moct, a mám v plánu vytvoření testsuite složené z mnoha speciálně vytvořených balíčků, které otestují co nejvíc cest v kódu. Dále je potřeba přidat pár drobných volitelných vlastností, jako je v pkgtools např. upgradepkg --install-new nebo --reinstall. A nakonec bude třeba zaktualizovat dokumentaci.
Nemá někdo nápad na užitečnou vlastnost, která v pkgtools chybí? Mě napadá příkaz --check, který by zkontroloval dané blaíčky a zobrazil soubory, které byly změněny či odstraněny po instalaci balíčku. Je ještě něco jiného?
Homepage projektu je: http://spkg.megous.com. Poslední beta verzi lze vždy najít v adresáři http://spkg.megous.com/dl/patches/.Tiskni Sdílej: