Občas provozuji nějaký ten AppImage a dle mě je to nejlepší řešení, mám dojem že i velký Linus se někde vyjádřil, že AppImage je šikovné řešení, narozdíl od Flatpaku a Snapu.
Jinak mám vše v nativních balíčcích. Na začátku popisované „podivné“ závislosti mě vskutku pobavily, to je prostě problém distribuce, I use Arch BTW. K Flatpaku a Snapu mám zkrátka nějaký vnitřní odpor, jednou jsem z důvodu lenosti zkusil nainstalovat betaverzi Siril z Flatpaku. Potom co jsem ho odinstaloval i s celou tou vopičárnou okolo, jsem si napsal PKGBUILD.
Problém AppImage je v tom, že dovoluje libovolně linkovat na knihovny v systému. To zní jako super nápad, že? To nejlepší z obou světů. Co mi stačí ze systému, to použiju, co potřebuju jiné, to zabalím k aplikaci. Bohužel to vede k tomu, že vývojář udělá AppImage, který funguje u něj (typicky na nějakém Ubuntu), ale už ne na ostatních distribucích, protože ta knihovna, u které mu to v Ubuntu fungovalo i se systémovou verzí a proto se jí rozhodl použít, je v ostatních distribucích v nekompatibilní verzi.
Samozřejmě jde udělat AppImage, který bude spolehlivě fungovat všude, ale chce to dost zkušeností a opatrnosti. AppImagů, které byly na mém systému rozbité, jsem zažil v množství "větším než obrovském". Ten formát bohužel selhává v té nejpodstatnější úloze: zajistit, aby jedna instalačka fungovala všude.
Tohle nerozporuji, ale netvrdil bych, že je to bug, je to spíše vrozený rys AppImage. Pořád je to něco za něco, relativní jednoduchost vyžaduje více práce toho, kdo AppImage vytváří.
Osobně jsem narazil na na chybějící knihovnu u AppImage Prusasliceru, kdy mi chyběl gtkwebkit, který byl linkovaný, ale nebyl součástí obrazu. Důvodem bylo, že by pak AppImage byl asi o 200 MB větší, kdyby měl táhnout všechny závislosti. To že z Flatkapu mám tyhle závislosti nainstalované je sice pěkný, ale takového místa co mi to sežere, nedejbože ve více verzích...
Nejlepší je nativní balíček to mi nikdo nerozmluví. AppImage je šikovný, Flatpak a Snap podle mě zavádí systém v systému a to se mi prostě nelíbí.
1. 8. 2025, 09:11 editováno autorem komentáře
Jenže když chcete vytvořit něco, co bude spolehlivě fungovat napříč všemi distribucemi a jejich verzemi, tak vám nezbude nic jiného než vytvořit systém v systému. Ten společný jmenoval je hrozně malý. Běžný uživatel očekává, že po instalaci mu bude aplikace fungovat, ne, že bude řešit, jak a v jaké verzi doinstalovat webkitgtk.
Další věcí je pak samotná distribuce. Autor AppImage se nechal slyšet, že pro něj je vrchol distribuce aplikací doba Windows XP, kdy si lidi stahovali instalačky z webových stránek. Existuje sice AppImageHub, ale nevím, nakolik je to dělané s ním ve spolupráci a nakolik mu natruc, každopádně to je velká znouzecnost.
Na distribuci softwaru v Linuxu jsem vždycky považoval za jednoznačně lepší to, že uživatelé instalují software z jednoho, maximálně několika prověřených zdrojů. Opravdu bych se nechtěl dožít toho, aby se normou stalo to, že máti řeknu: "Vyhledej si ve vyhledávači GIMP, klikni na jeho stránky a stáhni si instalačku". Zvlášť v dnešní době, kdy je relativně jednoduché udělat phishingovou stránku gimp-app.org, která se v Googlu při vyhledávání GIMPu umístí nad gimp.org.
Chápu, že pro někoho, kdo se chce držet distribučních balíčků a jen občas udělat výjimku a kdo ví co dělá, to je jednoduché a lákavé, ale já tedy doufám, že se to jako formát pro distribuci aplikací v Linuxu příliš neprosadí, protože to je opravdu návrat do časů Win XP. A vývojáři dnes balíčky pro distribuce dělat nechtějí a je jim jedno, jestli tam jejich aplikace je nebo ne, takže z toho, co fungovalo na občasné výjimky, by se taky mohl stát majoritní způsob distribuce aplikací na Linuxu a v podobě, v jaké to je teď, by to opravdu bylo "velký špatný".
Na distribuci softwaru v Linuxu jsem vždycky považoval za jednoznačně lepší to, že uživatelé instalují software z jednoho, maximálně několika prověřených zdrojů. Opravdu bych se nechtěl dožít toho, aby se normou stalo to, že máti řeknu: "Vyhledej si ve vyhledávači GIMP, klikni na jeho stránky a stáhni si instalačku".
Přesně tak. Jinak problém s používáním dalšími zdrojů softwaru může klidně nastat i při použití nativního balíčkovacího systému a slepému přidávání repozitářů.
Typický scénář, kdy mě kontaktuje uživatel, že mu špatně fungují aktualizace v "tom" Linuxu a vypisuje to "nějaký" errory.
Po vzdáleném připojení do systému pak vidím jen nějaké neřešitelné závislosti nebo mrtvé vzdálené repozitáře.
- A jak se ti to tam dostalo?
- Ale potřeboval jsem XYZ, a tohle byl druhý blogpost, co mi našel Google. Tak jsem jen kopíroval řádky a spouštěl :)
Nebo je to může být i takové to klasické.
curl -sL https://blablbabla.github.io/thegreatapp/install.sh | sudo sh
Takže v porovnání s tím mi přijdou důveryhodné zdroje a Flatpak s těmi izolačními mechanismy jako velký posun.
A co izolacia? Ten GIMP nepustim na siet a na zapis dam mu iba jeden adresar napr '~/Picture/GIMP' a balickovac mu este prideli nejaky '~/.local/share/gimp' pre zdielanie konfiguracie.
Potom sa radikalne zvacsi mnozstvo miest odkial mozem balik instalovat. System podobny ako ma Android. Izolacia aplikacii, nie ze kazda aplikaci vidi vsetko a moze si robit co chce. Viem ze sa to da nastavit ale skuste odizoval Chrome, to sa ani neda.
Na FireJail jsem se kdysi díval a minimálně nějaké přednastavené profily mi přišly takové polovičaté. Je hezké, když aplikace nemůže přistupovat úplně všude, a třeba u path traversal to může pomoci. Pokud ale útočník donutí aplikaci spustit vlastní kód (případně pokud je aplikace záškodnická), a pokud přednastavený profil dovolí zapisovat do ~, včetně třeba .bashrc apod., začíná to připomínat spíše bezpečnostní divadlo.
Nevím, jaký je aktuální stav, jestli už je to použitelné bez podobných pastí.
ad FireJail jo to máte pravdu, profily byly takové jak píšete ne zcela optimální.
Ale potřeboval jsem to na "speciality" (typu AI model se nesmí dostat do ~ ani do X nebo sítě), a tam jsou možnosti opravdu velké.
Třeba ale i u FF je tam teď tohle, což mi špatně nepřijde.
noblacklist ${HOME}/.cache/mozilla
noblacklist ${HOME}/.mozilla
noblacklist ${RUNUSER}/*firefox*
noblacklist ${RUNUSER}/psd/*firefox*
blacklist /usr/libexec
mkdir ${HOME}/.cache/mozilla/firefox
mkdir ${HOME}/.mozilla
whitelist ${HOME}/.cache/mozilla/firefox
whitelist ${HOME}/.mozilla
Dával jsem jen malý kus, jsou tam mraky includů "defaultního chování", u mě (slackware, takže dost custom build) to znamená, že tam (z pohledu toho procesu) .bash* vůbec není.
Pokud do něj člověk zapíše, tak to "jde", ale fajl to nepřepíše (virtualizuje ho to, po dobu běhu firejailu existuje, po vyskočení zmizí).
Uživatelská nastavitelnost je u SELinux dost mizerná, u Flatpaku si to člověk snadno nakliká přes Flatseal.
Navíc existují XDG portály, které podporuje čím dál tím víc aplikací. U souborů pak nemusí mít program přímý přístup k souborům vůbec, dostane ho až na vyžádání přes systémový file open dialog. To samé přístup třeba k webové kameře, lokaci, clipboardu, obsahu jiných oken pro screencast…
To je k XDG portálům? Tak to asi těžko, není problém nastavit Flatpak tak, aby to nijak nepotřeboval, takže žádný "Ohýbák" není potřeba. Ale pokud chci aby aplikace mohla snímat obrazovku, ale nechci aby to mohla dělat kdykoliv se jí zachce bez mého explicitního svolení, pokud chci aby mohla použít kameru, ale nemohla to dělat náhodně, pokud chci aby si vyžádala přístup ke konkrétním souborům přes dialog, aniž by měla přístup k čemukoliv kolem...
Pak jsou XDG portály něco co to umožňuje. Firejail a podobné sandboxy jsou jen částečné řešení problému, řeší jen soubory, a ještě k tomu neflexibilně. Chci mít možnost ukládat soubory? Musím do sandboxu nasdílet celý adresář do kterého se budou ukládat. Chci to omezit na jeden soubor? Musím ho specifikovat předem.
Tohle není rovnák na ohýbák, tohle je pokročilé zabezpečení, spíš bych to přirovnala k aplikačnímu firewallu pro prostředky systému.
Pro uživatele rolling distribucí s bohatšími repozitáři Flatpak takový benefit nemá, možná mimo komerčních aplikací (typově Spotify, různé ElectronJS klienti atp.).
Nicméně pokud jedete na klasicky verzovaných distribucích, co mají třeba dvou, tříletý cyklus plus nějakou extended podporu, tak je to podle mě rozumný způsob jak mít v systému aktuální verze mnoha aplikací, které navíc často vydává a testuje přímo jejich autor.
AppImage je za mě zajímavý možná pro portable aplikace, co chcete spouštět bez dalších runtime, jinak ne. Nemá to, logicky, žádnou přímou integraci do systému, aktualizace (bez dalších služeb), žádné sdílení atp.
Jinak mi přijde, že to někteří lidé vnímají strašně fundamentalisticky. Takhle to má být, to je ta jediná správná "Linuxová" cesta. Naopak s troufám tvrdit, že většina uživatelů vnímá spíš benefit toho, že má dostupné aktuální verze aplikací, které může používat.
U pár lidí okolo mě to třeba byl jeden z důležitých aspektů vedoucích k tomu, že s Linuxem můžou pracovat většinu času jako s primárním desktopovým prostředím.
Pro vývojáře desktop aplikací, speciálně pokud jsou to jednotlivci nebo malé týmy, co dělají multiplatformní desktop aplikace, je tohle konečně způsob, jak přímo do pipeline dát jedno oficiální, univerzálně použitelné sestavení pro Linux, které můžou testovat, řešit vůči němu bugy bez toho, aby odhadovali, co s tím provede další balíčkář, vůči kterým knihovnám to sestaví atd.
Ano má to i své nevýhody (např. více zabraného místa, pro někoho to může být i bezpečnost v případě staších knihoven, ale to je obecný aspekt všech "kontejnerových" řešení). Nicméně i s nimi to může pro spousty lidí pořád být velmi rozumný způsob, jak přidávat aplikace, co nejsou v distribučních repozitářích, pokud zkombinují nativní balíčkovací systém a právě Flatpak.
Asi tak. Tyhle sandboxované balíky především strašně moc zjednodušily provozování LTS dister na desktopu, kdy si člověk jádro systému a důležité věci v userspacu může držet na stabilních verzích (takže neriskuje, že si updatem rozdrbe systém, případně v updatu bude nějaká výkonová regrese), ale desktop appky má aktuální a nehnijou mu tam na prastarých verzích.
Pamatuju si na doby, kdy jsem jel Debian 5 na ThinkPadu T30 a třeba dostat tam relativně aktuální LibreOffice byl strašnej porod. Dneska s Flatpakem nemám problém mít na notebooku LTS distro s aktuálníma appkama a vlastně vůbec nic řešit nemusím.