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:

  1. Použiť navrhnutý workaround
  2. Downgradovať mutter a súvisiace balíčky
  3. Obnoviť snímku
  4. 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.