O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).
Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.
Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.
Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.
Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".
Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).
Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".
Vyrobit jednoduchý počítač pro sběr dat je dneska poměrně jednoduché - najdete si jednodeskový ARM počítač, zaměstnáte hardwarového vývojáře a necháte si navrhnout rozšiřující desku. Nakonfigurujete dodaný linux, nainstalujete databázi, webový server, svoji aplikaci pro sběr dat a je to.
První nečitelnou SD kartu svedete na vadný kus. Kdyby byla karta v pořádku, nebyla by přece nabouraná už po čtrnácti dnech! Jenže další karta umřela už druhý den. Že by dva vadné kusy? Třetí karta zničená během měsíce vás začne nahlodávat - že by ty karty byly v pořádku a špatně je něco jiného?
Jeden můj známý mi ukázal velkou kulatou krabici od paklu cédeček plnou zničených SD karet. Během vývoje zničil stovky různých karet, od nejlacinějších noname, přes značkové karty až po průmyslové SD karty s cenou v tisícikorunách za kus, které měly údajně hrubé zacházení vydržet. Odešly stejně rychle, jako kterákoli jiná SD karta v jeho sbírce.
SD karta není dělaná na časté přepisy. Při použití ve foťáku nebo v mobilu se na kartu zapíše třeba 10 MB najednou, při další operaci se zapíše dalších 10 MB najednou a tak dál. O data na kartě ve foťáku se obvykle staráte až po zaplnění karty nebo až když chcete fotky stáhnout. Databáze pracuje s kartou výrazně jinak - při sběru dat se na kartu zapisuje s malým intervalem poměrně zanedbatelné množství dat. Jakmile zapíšete do databáze, připojí se na konec nějakého souboru pár bajtů dat, databáze si navíc vynutí sync.
Do algoritmu pro wear leveling na SD kartě vidí pouze výrobce, takže je dosti pravděpodobné, že postupným připisováním pár bajtů na konec souboru přepisujete vždy stejné místo na kartě. Je div, že karta vydrží takové zacházení celých čtrnáct dní!
Základem je omezit veškeré zápisy na SD kartu. Typicky se při práci linuxového stroje zapisují na disk tyto informace:
Začnu od toho nejjednoduššího: swap. Vaše zařízení musí mít dostatek paměti pro běh celého prostředí, aby se nesnažilo používat swap. Stejně - nejlepší je swap úplně vypnout. Když začne počítač odkládat paměťové stránky na SD kartu, neuvěřitelně zpomalí. Nejjednodušším únikem z takové situace je tvrdý reset.
Databázová data přestěhujte na ramdisk. Ten můžete snadno vytvořit v souboru /etc/fstab řádkem:
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Ramdisk vytvořený tímto řádkem najdete v adresáři /dev/shm. Nevýhodou ramdisku je, že po restartu systému se data ztratí. Vaše aplikace s tím proto musí počítat a musí být schopná získat šablonu databáze z odjinud. Ztracená data? Smůla - ale pořád je to lepší, než jet vyměňovat zničenou SD kartu do zařízení vzdáleného několik stovek kilometrů.
Poznámka k databázi: používám databázi Sqlite. Údajně je tato databáze vhodná právě pro použití na SD kartách, protože nepřepisuje staré záznamy, ale zapisuje vždy nové verze dat na konec souboru. V praxi likviduje Sqlite SD kartu stejně, jako kterákoliv jiná databáze. Navíc doba pro zotavení po havárii je při větší databázi (řádově jednotky GB) i na normálním disku nechutně dlouhá. Snažte se proto svou databázi udržet co nejmenší.
U logů je problém, že obvykle každá aplikace zapisuje své logy do nějakého jiného souboru a u některých aplikací - typicky třeba u webového serveru - je nastavení logů specifické právě pro tuto aplikaci. Nejjednodušší je vůbec nenastartovat syslog démona (ať už používáte jakýkoliv). Pokud logy přece jen potřebujete, syslog se dá u rozumných aplikací pro logování (používám syslog-ng) poslat přes síť do jiného počítače.
Zakázat wtmp je nesmírně obtížné. Do souboru /var/log/wtmp zapisuje proces init. Google vám příliš neporadí - dotazů "Jak zakázat zápisy do wtmp?" najdete sice dost, ale odpovědí je pravidelně podezíravá, vyhýbavá otázka: "A proč to chcete? Zakazovat zápisy do wtmp může chtít jen zlý člověk, který nechce nechávat v systému své stopy". Naštěstí existuje jedno primitivní řešení - po startu proceru init wtmp jednoduše smažte:
rm -f /var/log/wtmp
Než se vám podaří v init skriptech tento soubor smazat, proces init sice stačí soubor vytvořit a možná do něj i něco zapsat, a po smazání bude mít nějaké připomínky, ale fakt, že si soubor wtmp nepřejete, dokáže akceptovat, a už jej znovu nevytvoří. Pokud byste chtěli zakázat vytvoření wtmp souboru kompletně, asi budete muset hrábnout do zdrojových tvarů - do toho se mi nikdy nechtělo.
Po prostudování různých zdrojů na internetu jsem dospěl k názoru, že nejvhodnějším filesystémem pro SD kartu je ext4. Pro SD kartu je ale vhodné zakázat žurnál a upravit některé další parametry:
mkfs.ext4 -O ^has_journal -E stride=2,stripe-width=1024 -b 4096 /dev/sda1
V souvislosti s montováním nekorektně odmontovaného filesystému po havárii systému nebo po vypnutí napájení bych ještě doporučil upravit startovací skripty tak, aby se zakázalo manuální kontrolování disků. Donuťte startovací skript, aby zkontroloval disk vždy, když je potřeba, a aby to dokázal udělat i bez vaší asistence. Já si přepsal startovací skript /etc/init.d/fsck (distribuce gentoo). Do míst, kde se původně systém dovolával mojí pomoci, jsem vložil řádek
fsck -y /
V jiné distribuci bude startovací skript vypadat jinak, takže žádné podrobnosti neuvádím. Poraďte si.
A ještě jednu připomínku na konec: u podobných zařízení není důležité, aby fungovala stoprocentně spolehlivě. Důležité je, aby se zařízení dokázalo vzpamatovat po havárii samo a pokud možno co nejrychleji.
Tiskni Sdílej:
Na jaké základní kostičky můžu tento balík rozložit?Rozkládání na základní kostičky, je právě doménou binárních distribucí. Gentoo naopak funguje na principu konfigurace a skládání. Jedná se o dvě techniky, kterými se oba typy distribucí snaží dopracovat podobného výsledku, tedy flexibility. Obojí má své výhody.
FSCKFIX=yesa medzi parametre jadra sa prida
forcefsckNemusim editovat ziadne init skripty a tym padom nebude problem pri upgrade.
Já to vyřešil USB diskem