V mutter, predvolenom kompozitore Gnome Shell pre Wayland, sa vyskytla
chyba. Chyba opravená vo verzii v3.38.4 prostredníctvom
!1784
spôsobovala, že Gnome Shell padal pri určitej udalosti kliknutia (zhruba
každých ~5 minút používania).
Keď som zistil, že systém takto nemôžem ďalej používať, mal som v podstate tieto možnosti, kým nebola vydaná oprava:
- Použiť navrhnutý workaround
- Downgradovať
muttera súvisiace balíčky - Obnoviť snímku
- Prejsť na iné desktopové prostredie
Poďme si rozobrat všetky kroky na menšie časti.
Použitie workaroundu #
Navrhovaný workaround spočíval v úprave CSS súboru, ktorý som nedokázal hneď nájsť v systéme. Keby som pátrал dostatočne hlboko, pravdepodobne by som to dokázal sprevádzkovať. Problémom s workaroundmi je ich dokumentácia.
Predstavte si, že som to len tak urobil a potom zabudol. V budúcnosti by mohol prísť balíček, ktorý by s tým interferoval, a ladenie by bolo veľmi náročné. Najzákladnejšie riešenie je aspoň vložiť súbor do verzionovania.
Tento súbor mal byť umiestnený v repozitári $HOME, teda bol by zahrnutý
medzi dotfiles. Napísal som už
príspevok o svojom
systéme správy dotfiles. To by aspoň zdokumentovalo zmenu, no stále by som
si musel pamätať, že zmena bola vykonaná a vrátiť ju späť pri aktualizácii
systému. Dalo by sa to zautomatizovať systémom podobným
informant, s využitím
pacman hookov na zablokovanie akcie (aktualizácie systému) kým sa nevykoná
iná akcia (odstránenie workaroundu).
Downgrade súvisiacich balíčkov #
Downgrade je zvyčajne jednoduchý, napríklad v Arch Linuxe existuje na tento
účel AUR balíček
downgrader-git. Veci
ako správca okien a knižnica kompozitora, čím mutter je, sú zvyčajne
tesnejšie späté so systémom a vyžadujú presné verziovanie. Toto som nejako
nevyskúšal, ale downgrade by tu určite dobre fungoval.
Použitie snímky #
Snapshotting je technika, pri ktorej sú všetky súbory „zmrazené” v čase a môžu byť kolektívne obnovené, keď nastane potreba. Oplatí sa vytvoriť snímku pred aktualizáciou systému. Ak balíčky obsahujú chyby, obnovenie systému na danú snímku ho opäť stabilizuje. Akýsi stroj času. Po snímke môžu byť všetky systémové balíčky opäť aktualizované, s výnimkou chybného balíčka.
Robím rsync snímku svojho systému každý týždeň na Raspberry Pi. Je to
cron job, ktorý vytvára rsync snímku pre všetky moje systémy. Bohužiaľ,
alebo skôr naštastie, nebol som doteraz nútený použiť obnovenie. Mal by som
tiež zvážiť nastavenie lokálneho mechanizmu snapshottovania. Ale niečo je
lepšie ako nič.
Prechod na iný balíček #
Posledné riešenie, ktoré ma napadlo, je prejsť na úplne iný softvérový balíček. Zvyčajne to nie je najlepšia možnosť, keďže neexistujú identické softvérové balíčky s iným názvom — inak by bol aký zmysel. To znamená, že sady funkcií dvoch odlišných balíčkov sa líšia, aj keď vykonávajú rovnakú úlohu.
Vďaka open-source povahe Linuxu na desktopu existuje obrovské množstvo desktopových prostredí. Tento jav sa nazýva fragmentácia. Rozoberanie výhod a nevýhod tohto stavu by zaplnilo celú knihu, takže som tú diskusiu vynechal. Zameraním sa na pozitívnu stránku som mohol zvoliť iný balíček (alebo presnejšie balíčkovú skupinu) a dosiahnuť podobný výsledok.
Presne to som urobil. Nainštaloval som XFCE vedľa Gnome Shell. Vyžaduje to viac balíčkov v systéme, takže aktualizácie sú aj väčšie. XFCE som používal na svojich predchádzajúcich notebookoch, napríklad na ThinkPade T400, ktorý stále mám, napriek jeho veku (ťažko ho zničiť). Ako poznámka na okraj, oplatí sa mať dve funkčné desktopové prostredia nastavené a ich konfiguračné dotfiles verzionované. Ak nastane ďalšia chyba podobnej povahy, nebude ťažké na ne spadnúť späť.
Toto je 17. príspevok #100daystooffload.