V poslední době se opět vyrojily diskuse o tom, jestli je rolling release dobrý model pro linuxovou distribuci nebo ne. Ubuntu stále přešlapuje někde mezi tím mít tradiční vydání a být rolling release, ve Fedoře se to diskutovalo v poslední době několikrát a často se setkávám s dotazy, jestli bude Fedora někdy rolling release. Přijde mi, že obecně je rolling release přijímán až příliš nekriticky. Původně jsem chtěl článek pojmenovat "Rolling release nefunguje", ale to neplatí obecně. Musel bych zúžit zaměření. Nicméně pojďme se podívat na silné a slabé stránky tohoto modelu vydávání. Začněme těmi silnými:
- Nejnovější software - uživatele dostávají nejnovější software, když je připravený. Nemusí čekat na další vydání jako v případě distribucí se zmraženými repozitáři. To je hodně lákavá věc.
- Jednodušší údržba - pro tvůrce distribuce je rozhodně jednodušší udržovat jednu, tu aktuální verzi softwaru místo třeba tří čtyř různých. Ono se to nezdá, ale tohle zkonzumuje hodně času a prostředků. Pokud má tvůrce distribuce nějaký důvod k rolling release, je to právě tady tento.
- Nižší nároky na balíčkáře - je balíčkování a balíčkování. Udělat balíček nějakého programu tak, aby fungoval v aktuálním vydání distribuce, není zase taková věda. Po nějakém studování to zvládne i pokročilý uživatel nebo admin. Udržovat balíčky v 5 let staré distribuci je věc úplně jiná. Verze musí zůstat stejná, ale vy musíte do balíčku zanést bezpečnostní opravy, které upstream vydal pro aktuální verzi. Tady už se bez programátorských znalostí neobejdete a často to nejsou triviální věci. Člověk musí danou opravu vzít z aktuální verze a zanést do mnohem starší, aniž by ovlivnil stabilitu, funkčnost nebo API programu. To už může být dost komplexní věc, kterou zvládne relativně malé množství lidí. Problém s tím mají především komunitní distribuce. Hlavní vývojáři tam jsou rozhodně zdatní, ale zbytek balíčkářů jsou často méně technicky zdatní lidi, pro které je backportování nad jejich síly, anebo je to prostě nebaví, protože je mnohem zábavnější balit nové verze s novými funkcemi než udržovat staré verze, které daný člověk většinou ani sám nepoužívá. To nikoho neuspokojuje.
A teď některá negativa, která si mnozí neuvědomují:
- (Ne)stabilita - rolling release distribuce se samozřejmě můžou lišit ve stabilitě od docela bleeding edge Archu (případně v extrému Fedora Rawhide) až po relativně stabilní Debian Testing, přesto po letech zkoušení rolling release distribucí si stojím za tím, že žádná z nich nedosahuje takové stability, aby přišla do rukou běžného uživatele (pokud po ruce nemá uživatele zkušeného). Linuxová distribuce je dnes velmi komplexní systém, kde se jednotlivé části navzájem ovlivňují. Jednoduché není testovat a ladit objekt, který se nehýbe. V momentě, kdy máte objekt, který se hýbe a do kterého neustále přichází nové změny, testování se stává výrazně náročnějším. Samozřejmě i rolling release distribuce by mohla být velmi stabilní distribucí, ale vyžadovalo by to takové zdroje investované do testování, které si dle mého názoru nemůže žádný současný tvůrce distribuce dovolit.
- Neustálé změny - i kdyby byla rolling release distribuce dostatečně stabilní pro běžné uživatele, stále je tu další, neméně důležité negativum: neustále se měnící systém. Představte si, že uživateli během jedné aktualizace přistane v systému GNOME 3 místo dosavadního GNOME 2. To je tak zásadní změna, že většina uživatelů si z toho sedne na zadek. Je to samozřejmě extrémní případ. Takovéto zásadní změny se nedějí příliš často, ale těch malých a středních je relativně dost a vzhledem k tomu, že hodně běžných uživatelům dělá problémy často i změna ikony, je to pro ně problém. Ale nejen pro ně. Problém to je i pro adminy (v serverovém nasazení, kde o něco trochu jde, je rolling release nemyslitelné) a i programátory, protože se také neustále mění API knihoven v systému.
- Podpora distribuce třetími stranami - s rolling release distribucí se těžko spolupracuje třetím stranám. Může to být např. tvůrce softwaru. Pokud má distribuci s pevnými vydáními, má něco, na co může vývoj cílit. Ví, jaké knihovny jsou k dispozici, v jakých verzích a jak dlouho budou podporované. U rolling release distribuce nemá na co cílit, protože je to neustále se pohybující cíl. Ale netýká se to jen tvůrců softwaru. Jak chcete třeba připravit dokumentaci či knihu o něčem, co, když ji vydáte, už neplatí? Platí to i pro výrobce hardwaru, kteří chtějí prodávat hardware s danou distribucí, případně mít ten hardware přímo certifikovaný.
- Marketing - rolling release je velmi špatný model z pohledu marketingu. Ať se to někomu líbí nebo ne, je to vydání nové verze, co přiláká k distribuci pozornost těch, kteří se o ni běžně nezajímají. Píšou se recenze, vycházejí oznámení o vydání, lidi ji po čase zase vyzkoušejí atd. Stačí se podívat třeba na Google Trends. Zatímco rolling release distribuce mají konstatní křivku zájmu, distribuce s vydáními mají kolem kolem dat vydání zuby, které indikují, že zájem o ně roste nad obvyklou hladinu. Ale není to jen o zájmu kolem vydání. Bez vydání nemáte v rukou konkrétní produkt, který můžete "prodávat", propagovat. Každé vydání má nové funkce a vlastnosti, které jej prodávají, a kolem kterých se potom staví aktuální propagace vydání a i celé distribuce.
Nechci, aby z toho vyznělo, že rolling release je něco špatného. Nakonec i pojmenování článku "Rolling release nefunguje" jsem si rozmyslel, protože to prostě obecně neplatí. Naopak jsou projekty, pro které se rolling release vyloženě hodí, protože je příliš nepálí jeho nevýhody a naopak ocení jeho výhody: jejich uživatelé ví, co chtějí (není potřeba přílišná propagace), jsou dostatečně zdatní, aby si poradili s problémy, které občas upgrady přinesou, a nevadí jim změny, spíš naopak. Pro projekty jako Gentoo nebo Arch Linux je rolling release ideální model. Nicméně si myslím, že distribuce, která má aspoň nějaké ambice dostat se mezi širší vrstvy uživatelů nebo uspět v byznyse, prostě být rolling release nemůže. Fedora je komunitní distribuce a docela otevřená novým technologiím. Přesto byl rolling release už několikrát zamítnut, protože se Fedora stále nevzdala toho přinášet svobodný operační systém s novými technologiemi, ale v podobě, kterou zvládnou i šiřší vrstvy uživatelů. Mimochodem s rolling release máme určité zkušenosti. Některé části totiž mají rolling release režim, např. kernel nebo KDE, a popravdě jsou to přesně ty oblasti, kde nejčastěji vidíme problémy typu "fungovalo to, aktualizoval jsem a už to nefunguje". Pokud Ubuntu přejde na rolling release, nebude to kvůli tomu, že by chtělo svým uživatelům přinést nějaký lepší model. Je to prostě znak toho, že se chtějí co nejvíce zaměřit na LTS vydání, která se dobře prodávají širším vrstvám, zbytek pro něj bude víceméně vývojová platforma, která by je měla s co nejmenšími nároky na údržbu přenést mezi jednotlivými LTS verzemi.