Díky za pěkný shrnující článek. Silverblue používám už sedm let a dnes na prakticky všech svých počítačích, udělalo to z Fedory bezúdržbový systém. Nejvíc se mi na tom líbí ta flexibilita přesouvání se mezi verzemi. Včera jsem na pracovním počítači přešel na Fedoru 41, která vyšla teprve v betě, a zcela bez stresu, protože když by něco nefungovalo, jedním rebootem bych byl zpátky ve Fedoře 40. Funguje to i v rámci jednoho vydání a je to super na bisektování regresí.
Dávám to i na počítače běžným uživatelům, protože ugprade systému s tím zvládnou sami a hlavně jsou schopní i beze mě se vrátit k předchozí verzi, když by se něco pokazilo.
Jinak v článku je drobná chyba: toolbox není nástroj na package layering, na to je v neměnných variantách Fedory rpm-ostree. Toolbox slouží k vytvoření pracovního prostředí nad neměnným systémem, kde si můžete instalovat balíčky, zapisovat atd. Je to tenká vrstva nad podmanem, která kontejner upravuje pro použití na desktopu: připojení domovského adresáře, display serveru, dbusu atd.
Silverblue je super, má to tchýně akorát už se mi 3x stalo, že se zasekly aktualizace. Naposledy to byl nějaký problém s grubem, musel se provést ruční zásah. A před tím zase program Updates neviděl žádný updaty.
Zřejmě je to jen problém lidské síly - Silverblue se nedostává takové pozornosti, jako tradiční Fedoře.
Ovšem pro prarodiče je to ideální, nerozbitný systém. Zaselký aktualizace zase nejsou až takový problém, systém jel normálně. Lepší než cokoli jiného.
Nerozbijí si ho rodiče, ale ten systém se může rozbít sám. Neděje se to už tak často, ale třeba regrese u podpory hardwaru se stávají. A když máti po aktualizaci na novou verzi kernelu začne vypadávat wifina, je to na dálku těžké řešit. Takto jí stačí říct, aby po bootu vybrala druhou položku v menu a je v tom systému, který jí před tím fungoval.
Ano, ale jen u kernelu. U neměnného systému prostě nabootuju do celé předchozí verze systému a nemusím řešit s uživateli, jestli je ta chyba v kernelu a pomůže nabootovat se starším kernelem nebo je chyba někde jinde.
A samozřejmě to stejně funguje i u celého upgradu systému. Moje máti si sama přejde z Fedory 39 na 40. Dřív bych ji toto určitě dělat nenechal.
Každý neměnný systém to má trochu jinak, ale u těch založených na OSTree jako Silverblue, je to tak, že je ten systém verzovaný jako v gitu. Každé vydání je jedna větev a každý denní souhrn aktualizací je commit v dané větvi. Když aktualizuji, stáhne se další snapshot systému, do kterého potom rebootuju. U upgradu je to analogické, jen se změní větev.
OSTree by default udržuje vždy dva snapshoty systému: ten aktuální a ten předchozí. V GRUBu si člověk vybírá, do kterého nabootuje. Nicméně na serveru se drží veškerá historie, takže pokud člověk chce, může si stáhnout libovolnou podporovanou verzi Fedory v libovolném snapshotu (aktualizaci z konkrétního dne) a přepnout do ní. Má to samozřejmě efektivní deduplikační systém, takže se ukládají jen rozdíly, ne celé obrazy, to samé při stahování nových snapshotů.
Jinak aplikace jsou standardně oddělené od systému a běží ve flatpacích. Žijí si nezávisle na systému a ani si nevšimnou, že se pod nimi změnil. Ale i Flatpak používá OSTree, každá aplikace má historii aktualizací a člověk se mezi nimi může volně pohybovat, případně aplikaci zamknout na konkrétním snapshotu, ale tady to zatím nemá žádné jednoduché UI, takže běžný uživatel by to nezvládl.
Dobre, takze pokud BFU nezvladne prepnout na predchozi verzi programu, jen kernelu, tak nevidim tu vyhodu oproti klasickemu systemu, kde BFU taky zvladne prechod na predchozi verzi kernelu.
Porad nechapu, proc by takovy system mel byt lepsi v tomto ohledu: "izap: Ovšem pro prarodiče je to ideální, nerozbitný systém."
Mnojo, protoze ja uvazuji primarne o techto dvou problemech: 1, chyba jadra, kdy nove jadro ma nejaky potiz s danym hardwarem, 2, chyba uzivatelskeho programu. Prvni problem se resi v obou typech systemu stejne. Druhy problem nemenny system neresi nijak lip.
Jasne, muze nastat cojavim treba problem s novou verzi crontabu, nejakou novou verzi knihovny, ale takovy problem jsem jeste v ramci spravy rodicovskych pocitacu nepotkal, pripadne nebyl vazny abych si to zapamatoval.
Asi proto, ze pouzivam LTS distribuce, a prechod na novou verzi LTS si pohlidam. V ramci jedne LTS jsou problemy s knihovnama asi marginalni, protoze se drzi pokud mozno stejna verze.
Kdyby to bylo rolling distro, tak asi takove problemy potkavam casteji?
Je mozne ze placam hlouposti, nejsem ajtak.
Ech. Tak znova.
Jo, aktualizuje.
Ja se snazim pochopit, v cem je ten nemenny system lepsi v tomhle pouziti: "pro prarodiče je to ideální, nerozbitný systém".
Ubuntu se aktualizuje. Pokud nastane chyba jadra, tak v ubuntu i nemennem systemu poradim po telefonu at pri startu zvoli ten druhy radek (predchozi kernel/system). Tady je to stejne pro oba typy systemu.
Pak je problem s programy typu Chrome (zasadni pro BFU). Dle Eischmann "jsou standardně oddělené od systému a běží ve flatpacích. Žijí si nezávisle na systému". Takze tady nemennem systemu nedokaze BFU nejak snadno vratit verzi, stejne jako to nedokaze v ubuntu.
Zatim jsem pochopil, ze nemenny system oproti standardnimu resi snadno systemove balicky. Takze nemenny system navic oproti standardnimu pomaha se systemovymi balicky, ale jak jsem psal vyse, techto problemu v souvislosti s aktualizacemi potkavam minimum (=jsem nepotkal).
Jo, muzu to chapat blbe, ale z diskuze ani clanku jsem to lip nepochopil.
To zacina byt nejakym zvykem necist predchozi diskuzi a napalit tu komentar?
26. 9. 2024, 09:00 editováno autorem komentáře
Tak neměnný systém je primárně o tom, že máte jeden otestovaný obraz a vždy víte, co uživatel v systému má. U balíčkovacího systému vždy dříve nebo později vytvoříte kombinaci balíčků, která nikdy nebyla otestovaná.
Pokud se něco po aktualizaci rozbije, tak se systém prostě vrátí k poslednímu fungujícímu obrazu. Nic jiného není třeba řešit. Pokud to máte na pokladně, tak se vám pokladna automaticky vrátí k předchozímu obrazu, pokud správně nenabootuje do koncové aplikace. U desktopového Silverblue ten jeden krok musí udělat uživatel, ale je to tak jednoduché, že to zvládne. A tohle funguje vždy, ať se jedná o kernel nebo jakoukoliv jinou komponentu, ať jde o update nebo upgrade. Vaše řešení funguje jen pro kernel a jen v rámci jedné verze distribuce. Já nechci nechat uživatele roky hnít na starém LTS. Mám instalace, které jsou i 10 let staré, a chci, aby to ti lidi zvládli pokud možno trvale samostatně. S neměnným systémem se můžou přesouvat z jedné verze na další, jak postupně vycházejí, aniž by mě k tomu potřebovali a aniž bych já musel mít obavu, že skončí s rozbitým systémem a já jim zrovna nebudu moct pomoct.
Ne nadarmo jsou dnes všechny mobilní systémy, systémy v hodinkách, televizích atd., kde prostě potřebujete, aby to fungovalo bez zásahu uživatele, image-based a neměnné.
Jinak velkou část té stability dělá to, že aplikace běží ve Flatpaku. Vždy totiž běží v tom prostředí, v kterém jej autoři otestovali, bez ohledu na to, jak se systém pod nimi měnil. Dřív jsem měl zkušenost, že po upgradu systému některé aplikace nějaký čas nefungovaly úplně optimálně, protože v systému přistála nová verze systémové knihovny, na které závisí a která se chová trochu jinak. Tyhle problémy úplně odpadly. Tohohle jde dosáhnout i na tradiční distribuci, když se budete striktně držet flatpaků, ale v neměnných systémech jako Silverblue je to standardní řešení.
Pokud vám vaše řešení s LTS vyhovuje, já vám to neberu. Netvrdím, že neměnný systém je jediná možnost, jak daného dosáhnout. Osobně jsem si za ty roky vyzkoušel obojí a dnes volím neměnný systém, ale nikomu to nenutím.