Pro vývojové prostředí a spoustu dalších aplikací je Debian skvělý ale jako desktop se uplatnit nemůže (to říkám jako člověk, který ho dřív řadu let na desktopu používal). Jistě, člověk si ho může nainstalovat, používat co chce atd, jenže o tom to není. Vývojáři třetích stran nemůžou dost dobře vydávat hotové uživatelské aplikace "pro debian" protože žádné dvě instalace Debianu nejsou stejné. U Ubuntu nebo Fedory vývojář přesně ví, na co cílí a co má předpokládat. U Debianu? Každý používá jiný desktop, kromě těch, co žádný desktop nepoužívají a místo toho se drží i3 nebo fvwm. Má desktopová aplikace "pro debian" počítat s X11 nebo s Waylandem? Může počítat s tím, že tam bude dconf? Bude tam dbus? Bude to podporovat specifikace freedesktop.org, , nebo je uživatel jeden z těch, co ho "na svém stroji" z principu nechtějí? Bude tam gstreamer? A pokud ano, které pluginy bude podporovat? Když je všechno takto nekonečně volitelné a přizpůsobitelné, výsledek je, že se pro takový OS prostě nedá vyvíjet, snad kromě aplikací stylu Xedit, založených na tom nejmenším společném jmenovateli, u kterých si veškerou integraci do prostředí uživatel musí doskriptovat sám - ale Linuxová komunita se 25ti letým zpožděním snad už konečně dospěla do stadia, kdy si otevřeně přiznala, že to prostě není desktop.
To samozřejmě neznamená, že to nemá výhody a využití v jiných směrech, ale rozhodně ne jako desktop ve smyslu cílová platforma pro hotové uživatelské aplikace. Teoreticky by se Debian dal používat na desktopu v rámci nějaké organizace, kde to bude na uživatelských stanicích nastavené standardizovaně a natvrdo. Jenže tam je zase důležitá komerční podpora, kterou na desktopu dneska nabízí jenom Canonical...
Pokud Debian není vhodný pro desktop, bude to nejspíš z jiných důvodů než z Vámi uvedených. (Napadají mě drivery, ale to spíš spekuluju.) Zmíněné problémy mají často triviální řešení – použiju třeba GTK, dám to do závislostí a typi nemusím řešit GTK/Wayland nebo použitý desktop. Podobně GStreamer – prostě nastavím závislosti. Dbus – prostě ho dám do závislostí a komu se to nelíbí, ten ať si to ohackuje po svým a nestěžuje si. Případně jako vývojář použiju Flatpak/Snapd a bude to aplikace i pro Debian.
Pokud někdo běžnému uživateli předinstaluje Debian bez dbusu s předpokladem, že si tam i on sám něco doinstaluje, asi nemá soudnost. Nainstalovat OS + pár aplikací a spravovat to sám – proč ne? Nechat uživatele dělat updaty – nevím, co Debian nabízí v GUI, ale asi by to mohlo řešit třeba gnome-software. Nechat uživatele něco si doinstalovat? Částečně. Tady by asi bylo lepší Ubuntu, které si jen tak někdo nedovolí ignorovat. I když s rozšířením Snapd/Flatpak se může situace změnit.
Takže všechny ty hotové balíčky deb třetích stran (namátkou Spofity, Plex, Sublime Text, Steam Client) fungují na Ubuntu, ale na Debianu je s nimi problém? Ptám se bez ironie, opravdu mě to zajímá.
No, problém. Jak se to vezme. Z pohledu zkušeného uživatele nejspíš (většinou) žádný problém není, protože:
1. Ví, že když je to pro Ubuntu, bude to nejspíš i pro Debian.
2. Umí si případně dohledat, která verze Ubuntu odpovídá které verzi Debianu.
3. Zvládne přidat repozitář i bez apt-add-ppa-repository, nebo jak se to přesně jmenuje.
4. Když náhodou přecejen nastane nějaký problém, nejspíš si s tím nějak poradí.
Z pohledu běžného uživatele (teda asi ne běžného uživatele Debianu…) cokoli z toho může být problém. Neříkám, že nic z toho nenainstaluje, ale šance jsou nižší. Možnosti tu jsou:
A. Ideálně daný software najde jako FlatPak nebo snap. To má ovšem několik předpokladů, zejména že mu někdo nainstaloval Flatpak/Snapd a případně přidal Flathub repo. A asi i něco jako Gnome Software + pluginy. A má to jeden nepříjemný nedostatek – některé aplikace je pak vidět vícekrát. Teď jsem si schválně zkusil Gnome Software na Debianu s tomto setupu. Na Firefox mi to najde dvě varianty (deb+snap, nevím, proč to nenajde Flatpak) – ještě relativně OK s ohledem na to, že jedna z těch variant bude ESR. I tak to ale může být matoucí. Spotify – našlo mi to podle očekávání dva výsledky (snap+Flatpak). VLC – našlo mi to dokonce čtyři výsledky (2*deb + flatpak + snap). Skype – dva výsledky (flatpak + snap).
b. Možná aplikace nabídne deb, který i přidá repo – to AFAIR dělá třeba Chrome, ale moc jsem to neviděl. To má celkem šanci proklikat i uživatel zvyklý z Windows.
c. Možná autor aplikace oficiálně podporuje i Debian (případ třeba Spotify) a napíše přesnou sekvenci příkazů, které lze jen zkopírovat do terminálu. Pokud uživatel zvládne spustit terminál a nebude mu vadit slepě zkopírovat pár příkazů a zadat heslo, mohl by to zvládnout.
Flatpak a Snap teď nechme stranou. Jde mě o balíčky s příponou deb (buď přímé stažení nebo přidání repozitáře ze kterého se deb stáhne).
Když rozkliknu moje odkazy tak:
- Spotify uvádí návod na přidání repozitáře pro "Debian / Ubuntu"
- Plex nabízí přímo ke stažení deb pro "Ubuntu (16.04+) / Debian (8+) - Intel/AMD 64-bit"
- Sublime nabízí repozitář pro "Ubuntu, Debian"
- Steam nabízí odkaz ke stažení deb pro "Latest Ubuntu LTS, fully updated"
Takže u jediného Steamu bych očekával možné komplikace na Debianu, ale Klokan to napsal tak, že kvůli roztříšněnosti Debianu mohou být problémy i s těmi balíčky u kterých třetí strana uvádí, že jsou pro Debian. Má Klokan pravdu?
Já jsem to pochopil tak, že se kvůli tomu do toho někteří ani pouštět nebudou. Což možná někdy bude pravda, ale těžko to potvrdit/vyvrátit. Určitě by šlo najít i další příklady, kdy je balíček pro Ubuntu a není pro Debian.
Jestli u těch balíčků mohou nastat problémy na netypických konfiguracích – teoreticky ano, nikdo není dokonalý a asi někdy půjde najít nějaký edge case. Na druhou stranu to tu ale nepovažuju za moc relevantní argument u aplikací, které již jsou k dispozici – sice při netypickém systému možná občas narazíte na edge case, na který autoři nepomysleli*, ale kdo rozumný nasadí běžnému frantovi takovýto netypický systém? (Neberu teď uživatele se specifickými potřebami – ti ale mohou mít podobný problém i na Windows.)
*) Vzpomínám si na VPN software, který tiše předpokládal běžící NetworkManager.
možná občas narazíte na edge case, na který autoři nepomysleli
Jo problém u nějaké exotické konfigurace určitě vzniknout může, ale mě zarazilo, že Klokan o Debianu napsal "...výsledek je, že se pro takový OS prostě nedá vyvíjet...", přitom když vidím nějaký hotový balíček třetí strany pro linux, tak je právě jako *.deb balíček. Nikdy mne nenapadlo, že by tyto balíčky měly být určeny primárně pro Ubuntu a nikoliv pro Debian. Všiml jsem si toho poprvé až nyní u Steam clienta.
Souhlas, to tvrzení je poněkud přehnané.
Určení balíčků – ony jsou určeny nejen pro Debian/Ubuntu, ale i pro konkrétní verzi. Když novější verze systému přejde třeba na novější generaci nějaké knihovny, může vzniknout problém s kompatibilitou. Provozovat deb pro jiný OS nebo pro jinou verzi OS často půjde, ale je to takové punkovní řešení.
Tak je pravda, že spousta třetích stran vydává .deb balíky, ale z vlastní zkušenosti vím, že není vždycky jednoduché je instalovat (a není vždycky zaručené, že budou fungovat). Beru to spíš tak, že takové balíky jsou pro "ekosystém Debian". Balíky primárně určené pro Ubuntu nejsou nijak vzácné, celkem často se uvádí že to je pro Ubuntu 18.04 LTS apod. To je pro vydavatele snadné, protože to je jasně definovaná platforma. U Debianu balič samozřejmě může nastavit všechny potřebné závislosti, ale uživatelé v praxi používají různé kombinace stable, testing a sid a mezi knihovnami a systémovými komponenty existuje tolik konfliktů, že to může být (a často je) problém.
Jak už jsem napsal, samozřejmě, že by šlo mít desktopovou platformu formou nějaké přesně definované konfigurace Debianu, v praxi se to neděje nejspíš proto, že na desktopu nabízí korporátní podporu Ubuntu a pro Debian pokud vím momentálně nikdo.
No, Steam (nebo spíš hry z něj) asi bude požadovat grafické ovladače, které dostupné bývají. API / ABI kernelu bývá směrem k aplikacím AFAIK celkem rock stable (moduly jsou jiný příběh…), vizte https://en.m.wikipedia.org/wiki/Application_binary_interface . A v praxi někdo dokonce zabalil Steam do Flatpaku, takže lze vyzkoušet/pohledat, jak moc je toto použitelné.
Docker a LXD mají svoje Snapy. S relevantním API / ABI kernelu je to tu podobně. Jsou tu určitá „ale“:
1. Kernel musí mít podporu příslušných technologií. Pokud třeba nezapnu pro Docker podporu cgroups, mám smůlu.
2. U Dockeru jsem AFAIR musel explicitně vytvářet uživatelskou skupinu. Je to trochu jiný druh problému a o přenositelnosti deb balíčku neříká nic.
V případě balíčků deb může problém vzniknout na úrovni knihoven, které nebudou dostupné nebo ne v požadované verzi. Pak může být problém i Sublime.
ABI kernelu je stabilní, ale jak říkáte, kernel musí mít požadované featury a to je jiná věc. Pár příkladů z nedávné praxe:
1. Když se v Ubuntu aktualizuje kernel z PPA, tak nefunguje LXD (vyžaduje nějaké věci, které zatím nejsou v upstreamu a Ubuntu je má ve vlastních verzích)
2. Podman se v Ubuntu dá instalovat, ale funguje blbě na rozdíl od Fedory (patrně obdobná situace)
3. The Dig koupený u GOG funguje v Debianu a ve starších verzích Ubuntu, ale ne v novějších (chybí nějaká knihovna, už nevím která, která už není v repozitářích). Musel jsem instalovat ScummVM a hrát ho v něm. Jak funguje v jiných distrech netuším.
4. Zde diskutované Birdtray: spoustě lidí zřejmě funguje, ale v Ubuntu focal s Waylandem absolutně nepoužitelné
5. Chromium ze snapu nefungovalo v Kali (možná se to už spravilo)
Mimochodem Steam mám z Flatpaku na Ubuntu a funguje bezproblémově (na moje užití, které má do nějakého vášnivého gamerství daleko...)