Vyhledávání na webu

Nechápal jsem správce balíčků Linuxu, dokud se všechno nezhroutilo — teď mám jedno pravidlo


Po dlouhou dobu jsem s linuxovými správci balíčků zacházel jako s automatech. Potřebuji aplikaci? Nainstaluji ji. Potřebuji další? Nainstaluji ji také. APT, Flatpak, Snap byly mixovány a doplněny o PPA nebo dva. Co by se mohlo pokazit? Chvíli se nic nepokazilo. A právě to byl problém. Protože mi to dávalo právě dostatek důvěry, abych pokračoval. Linux nereagoval. Nevaroval mě. Neobjevil se žádný užitečný malý vzkaz s textem: „Hej, možná bys neměl instalovat tři různé verze stejné aplikace ze tří různých ekosystémů.“ Prostě… mi to dovolil.

A čím víc mi to dovolovalo, tím víc jsem předpokládal, že vím, co dělám. Až jednoho dne se všechno pokazilo. Ne dramaticky, a rozhodně ne uspokojivým způsobem s výbuchy a chybovými hláškami. Prostě … nenápadně špatně. Aplikace přestaly spouštět, aktualizace selhávaly a závislosti spolu začaly hádat jako dysfunkční rodina, která po letech zdvořile vyhýbala konfliktům a najednou se rozhodla, že právě dnešní večer je ten pravý. Právě ten večer jsem si uvědomil, že ve skutečnosti nerozumím tomu, jak Linux instaluje software.

Proč všechno fungovalo, dokud to nefungovalo

Linux vám umožňuje hromadit složitost bez varování

Moderní distribuce Linuxu jsou neuvěřitelně shovívavé. Můžete instalovat software z několika zdrojů, aniž byste o tom příliš přemýšleli, a většinou všechno jen funguje. APT stahuje z systémových repozitářů a udržuje vše pevně integrované. Flatpak instaluje aplikace v pískovišti s jejich vlastními závislostmi. Snaps zahrnují své vlastní prostředí a aktualizují se nezávisle. PPAs tiše vkládají novější nebo alternativní verze přímo do vašeho systému.

Zpočátku to působí jako svoboda. Opravdová svoboda. Taková, která vás nechává cítit, jako byste unikli z oplocených zahrad jiných operačních systémů. Nečekáte na aktualizace. Nejste uvězněni v jediném obchodě. Není vám řečeno „ne“. Ale svoboda bez tření je nebezpečná věc. Protože všechny tyto systémy řeší mírně odlišné problémy. Nesdílejí jediný pohled na váš systém a nespolupracují mezi sebou žádným smysluplným způsobem. Koexistují, někdy pokojně. Jindy méně.

Takže můžete nainstalovat stejnou aplikaci třemi různými způsoby, z nichž každý má své vlastní závislosti, logiku aktualizací a očekávání ohledně okolního systému. Linux vás v tom nezastaví. Ani vám to nezpomalí. Jen tiše dovolí, abyste nahromadili složitost, až nakonec něco selže.

Když se začaly ukazovat trhliny

Nic úplně neselhalo, ale všechno působilo špatně

Můj systém neskolaboval. To by bylo čisté, zřejmé a opravitelné. Místo toho se věci začaly kazit tím pomalým, nenápadným způsobem, který vás nutí zpochybňovat vlastní zdravý rozum a kontrolu nad realitou. GIMP nainstalovaný přes APT se odmítal spustit poté, co jsem nainstaloval verzi Flatpak téže aplikace. PPA nahradila systémovou knihovnu jen tolik, aby aktualizace hlásily chybu, aniž by plně vysvětlily proč. Snap aplikace se chovaly trochu jinak, jen tolik, aby působily nekonzistentně způsoby, které bylo těžké popsat, ale nemožné ignorovat.

Nic neřvalo „to je rozbité.“ Ale všechno působilo špatně. Animace měly mírné zaváhání. Aplikace se otevíraly o chvilku déle. Aktualizace začaly zobrazovat vágní, pasivně agresivní chyby, které spíše připomínaly nápovědy než diagnostiku. Odstranění jedné aplikace tiše rozbilo jinou. Přemašťování ne vždy všechno opravilo, protože problém nebyl v samotné aplikaci. Byl to ekosystém, odkud pocházela. Nebo přesněji, ekosystémy, které jsem na sebe bezmyšlenkovitě naskládal. A nejhorší bylo, jak neviditelné to všechno bylo. Nebyla žádná jediná chybová zpráva ukazující na hlavní příčinu. Žádný zřejmý moment „to jsi udělal ty.“ Jen rostoucí pocit, že systému se dá čím dál víc méně věřit. Tehdy mi to došlo. Nebylo to náhodné. Bylo to hromadění. Malá, rozumná rozhodnutí se nashromáždila, až přestala být společně rozumná.

Uvědomění, které změnilo všechno

Správci balíčků nejsou zaměnitelní






To je ta část, které jsem si přál rozumět už od prvního dne, nebo alespoň než jsem začal volně přidávat PPA, jako by to byly rozšíření prohlížeče. APT, Flatpak a Snap nejsou jen různé způsoby, jak nainstalovat stejný software. Jsou to různé filozofie, které předstírají, že mohou koexistovat pokojně.

APT předpokládá sdílený systém. Knihovny se znovu používají. Závislosti jsou spravovány centrálně. Očekává se, že vše bude spolu dobře fungovat, protože všechno žije ve stejném světě.

Flatpak předpokládá izolaci. Aplikace přinášejí to, co potřebují, a většinou ignorují systém. Proto jsou přenosnější, často aktuálnější a někdy trochu těžší.

Snap používá podobný přístup, ale se svým vlastním formátem balení, chováním aktualizací a modelem runtime navrženým navrch. Řeší některé problémy, přičemž zároveň přináší své vlastní zvláštnosti, jak může potvrdit každý, kdo někdy čekal, až se aplikace Snap spustí.

A PPA? Ty úplně ohýbají pravidla tím, že nahrazují části vašeho APT ekosystému vlastními verzemi. Silné, užitečné a trochu chaotické, pokud zapomenete, že tam jsou, což já absolutně zapomněl.

Žádné z toho není špatné. Ale také nejsou zaměnitelné. A rozhodně nejsou navrženy tak, aby se vrstvily na sebe bez jakéhokoli plánu. Jejich náhodné míchání je jako kombinovat části z různých operačních systémů a doufat, že budou fungovat jako jeden soudržný systém. Někdy to funguje. Dokud to nepřestane fungovat.

Jediné pravidlo, které opravilo můj systém

Každá aplikace má jeden domov

Úklid tohohle nebyl zábavný. Zahrnoval odinstalování duplicit, vyčištění zbylých balíčků, odstranění PPA, na která jsem úplně zapomněl, a snahu přijít na to, která verze čeho se vlastně používá. V jednu chvíli jsem měl nainstalované tři verze téže aplikace na třech různých systémech a žádná z nich se nechovala úplně stejně. To působilo spíše jako bych si omylem vytvořil vlastní fragmentovaný softwarový multivesmír než jako flexibilita.

Někde v tom procesu úklidu, mírně podrážděný a mírně ohromený tím, jak důkladně jsem věci zkomplikoval, jsem narazil na pravidlo, které bylo téměř trapně jednoduché: Každá aplikace má jeden domov. Pokud něco nainstaluji přes APT, držím se APT pro tu aplikaci. Pokud si vyberu Flatpak, zavazuji se k té verzi. Pokud opravdu potřebuji PPA, beru to jako úmyslnou volbu, ne jako náhodný doplněk, který bych později zapomněl.

Efekt byl okamžitý

Žádné duplikáty, žádné překrývání a absolutně žádné paralelní instalace tiše vycházející ze synchronizace na pozadí. Efekt byl okamžitý a upřímně trochu překvapivý. Aktualizace přestaly hlásit chyby. Závislosti přestaly kolidovat. Odinstalování softwaru ho skutečně odstranilo místo toho, aby zůstávaly malé duchy. Můj systém začal fungovat zase jako systém, místo jako sbírka volně propojených rozhodnutí. A možná ještě důležitější je, že jsem přestal zpochybňovat každý divný malý problém. Protože teď jsem věděl, kde co žije.

Linux se nezhroutil. Já mu jen konečně porozuměl.

To je nepříjemná pravda. Linux mě nezradil, neselhal náhodou a nerozhodl se mít špatný den.

Postupovalo podle mých pokynů dokonale. Jen jsem si neuvědomil, že tyto pokyny si protiřečí. Jakmile jsem pochopil, jak balíčkové manažery skutečně fungují, chaos přestal působit záhadně. Stalo se to logickým. Předvídatelným. Dokonce trochu zřejmým zpětně, což je vždycky tak, jak to chodí. A jakmile je něco předvídatelné, je to opravitelné. Linux se nemusel měnit, ale já ano.

Související články