Flatpak használata

Az előző részben már kitárgyaltuk az egyszerű, minden Linux disztribúcióban elérhető, a disztribúciódtól független csomagolási módok előnyét. Bemutattam az AppImage megoldást, ami pontosan egy fájlt tartalmaz, amit letöltesz, futtathatóvá teszel, és használod. Ma egy másik megoldást mutatok, ami flatpak néven fut. Ez kissé eltér az előzőtől. Itt már kell egy előre telepített programocska, ami ezeket kezeli: flatpak. Ezt majdnem minden disztribúció tartalmazza. A flatpak oldalán elolvashatod, hogyan telepíthető a Te disztribúciódhoz. A legtöbb esetben simán a csomagkezelődet használod, ami már nem lehet gond számunkra! Sok Linux disztribúció már alaptelepítéssel szállítja ezt a megoldást, így semmi teendőd nem lesz ezeknél. Érdemes - ha előre telepített - a meglévő verziókat használni, nem gányolni egy frissebb megoldást.
A Linux Mint alatt a Szoftverkezelő alkalmazásban a tükrökből elérhető deb csomag és a flatpak csomag egyaránt látszik. Ugyanis az Linux Mint és az LMDE terjesztéseken alapértelmezetten telepített a flatpak csomag, továbbá alapértelmezetten be lett állítva a flathub tükör is, tehát minden készen áll a flatpak csomagok azonnali telepítésére. Itt a program neve mellett van választási lehetőség, hogy a natív csomagot, vagy a flatpak csomagot akarod választani. A verziók erősen eltérhetnek, így az újabb verziókat is lehet flatpakban telepíteni! Az MX Linux alatt a grafikus csomagkezelőben külön fülön találjuk meg ezeket. A pamac (Arch, Manjaro stb.) csomagkezelőbe szintén integrálható a lehetőség!

Más csomagkezelőkben, például a Synaptic csomagkezelőben a flatpak csomagok nem látszanak, sem az elérhető, sem a telepített alkalmazások!

Miben más a flatpak, mint az AppImage:

Itt kell egy kis programocska a kezeléshez, amit már telepítettél, ez a flatpak. A telepítéshez nem Te töltesz le valamit, hanem az a kis „keretprogram” intézi a feladatokat, ez point úgy működik, mint egy csomagkezelőben. Bár itt is független a legtöbb esetben a flatpak csomagolású program a disztribúciódtól, de egy program településéhez nem feltétlen egy csomag jön le, hanem több is. Maga a felhasználói  program, és esetleg a futtatásához szükséges egyéb dolgok. Ennek is van értelmes magyarázata: ha sok csomaghoz kell a kde_akármi_környezet csomag, akkor nem lesz belerakva mindegyikbe, hanem külön csomagban lesz, és ha kell a program letölti neked automatikusan. Hely és sávszélesség takarékosabb - elvileg. Kicsi, nekünk lényegtelen eltérés ez. De ne lepődj meg, ha pld. a kdenlive mellé lecsorog pár kisebb-nagyobb csomag is. Az problémás lehet, ha egy nagyon pici programhoz le szeretné hozni az egész KDE futtatási környezetét...
Ami számunkra más érdekesebb, hogy itt nincs lehetőség többféle verziót is használni, jellemzően egy stabil verziót ad a rendszer. Ez számomra inkább hátrány, mint előny, de aki folyamatosan a friss, stabil verziót szeretné használni annak ez előnyt jelent.

Flatpak használata Linux alatt

Én most a CLI megoldást mutatom be a flatpak-kal, de sok disztribúcióban már a szoftverközpont, discover, áruház stb. néven futó grafikus program is kezeli ezt.

flatpak --help

Első lépésben indítsuk el csak magát a programot --help kapcsolóval egy terminálban. Kapunk egy szép hosszú listát a lehetőségekről.

Használat: flatpak [KAPCSOLÓ…] PARANCS

  • install Egy alkalmazás vagy futtatókörnyezet telepítése
  • update Telepített alkalmazás vagy futtatókörnyezet frissítése
  • uninstall Telepített alkalmazás vagy futtatókörnyezet eltávolítása
  • list Telepített alkalmazások és/vagy futtatókörnyezetek felsorolása
  • info Információk megjelenítése a telepített alkalmazáshoz vagy futtatókörnyezethez
  • config Flatpak beállítása
  • repair Javítja a hibás telepítéseket
  • create-usb Áthelyezi a telepítés egy cserélhető eszközre
  • search Távoli alkalmazások vagy futtatókörnyezetek keresése
  • run Alkalmazás futtatása

-h, –help Súgólehetőségek megjelenítése, ezt és a man oldalakat érdemes használni, mert itt kapunk az alapvető kérdésekre választ. Ezeket olvassuk át, hogy képbe kerüljünk a sokféle lehetőséggel kapcsolatban. Sokat tud a program, nem árt ismerni. A teljes kimenet ennél hosszabb lesz!
Itt is két-három alapparancsot érdemes ismerni, és még párat, hogy hatékonyak legyünk. Semmivel nem bonyolultabb, mintha a saját disztribúciód CLI csomagkezelését használnád.

Első lépésben hozzáadjuk a tárolót

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Én a flathub.org-ot használom, így a példa is ez lesz. Nem is nagyon van más ilyen kaliberű tárhely. Sok rendszerben ezt alapból beállítják, így ez a lépés ki is maradhat. Fontos tudni: egyes disztribúciók saját beállítású flatpak tárhelyet használhatnak, illetve telepítéskor felajánlják a választást a kétféle tárhely közt. Itt is kövessük a megszokott elvet. Ha a Linux disztribútorunk beállít valamit, azt csak okkal és odafigyelve bíráljuk felül!

Majd megnézzük, hogy valóban sikerült és milyen tárolóink vannak:

flatpak remotes

Ha minden sikeres volt, akkor valami ilyen kiírást kapunk:

Név Beállítások
flathub user system

Már csak le kell kérdeni a tárolóban elérhető csomagokat. Egy hosszú listát kapunk, én most nem másolom be, felesleges…

flatpak remote-ls

Praktikus, ha a kimenetet egy szövegfájlba mentjük, és azt nézzük végig. Így a pontos nevet nem kell begépelni majd a parancssorba, hanem csak másolni kell. Itt a nevel hosszabbak, mint a megszokott.

A konkrét kereséshez is ad segítséget a rendszer:

flatpak search Inkscape

A kereséskor (search) a hosszabb flatpak nevek nem mindig látszanak a teljes ablakra tett terminálban sem.
Ezen segít a column alkalmazás x kapcsolója:

flatpak search Inkscape | column -x

Csomagtelepítés flatpak rendszeren

A példa szerint: org.inkscape.Inkscape-t telepítjük majd.

Telepítés előtt kérdezzük le a csomag adatait

flatpak remote-info flathub org.inkscape.Inkscape

Különösebben nem fontos, de nem árt, ha tudjuk, hogy mi és mekkora csomag kerül fel.

Kis kitérő:

Én jobban kedvelem a gyorsabb utat:

flatpak --user update && flatpak --user search inkscape

Frissítések keresése…
Alkalmazásazonosító Verzió Ág Távoli tárolók Leírás
org.inkscape.Inkscape stable flathub Vektorgrafikai szerkesztő

Azaz frissítem az adatbázist, majd megkeresem, hogy van-e megfelelő csomag. Az így kapott infó kevesebb, de elegendő.

Aki nézelődni, keresgélni akar, annak jó megoldás a flatpak.org oldalon a kereső használata. A kiválasztott program alatt ott a telepítési és indítási parancs is, így gyorsan tudjuk telepíteni a kívánt dolgokat.

A telepítés egyszerű:

flatpak --user install flathub org.inkscape.Inkscape

majd rákérdez, hogy Y/n és ha kell megkeresi a függőségeket, és arra is rákérdez, hogy Y/n.

Miután lefut a telepítés, már kész is vagyunk a használatra.

Ha a szoftverközpont stb. felületen keresztül telepíted, akkor berakja a menübe, de ha CLI, akkor nem. Ez látszólag kellemetlen, de nem jelent túl nagy gondot. Bár ahogy észrevettem van olyan rendszer, ami be is rakta a menübe, így érdemes előbb ott megnézni, hogy a Te Linux disztribúciódban ez miképp alakul.

flatpak run org.inkscape.Inkscape

így indítható a flatpak csomag. Ezzel már akár ikonhoz, akár panelba is el lehet helyezni, de szkriptet is tehetsz hozzá.

A telepített flatpak-okat le lehet kérdezni:

flatpak list

ha már nem kell, azt pedig eltávolítani:

flatpak --user uninstall org.inkscape.Inkscape

A flatpak csomag nem a disztribúció része! Így a megszokott parancsokkal nem lehet frissíteni, a rendszerfrissítéskor nem fog a többivel együtt frissülni. Ezért időnként a

flatpak update

lefuttatása ajánlott.

A flatpak telepítésnél feltűnhetett, hogy a su vagy a sudo hiányzik a sor előtt. Igen, ha flatpakot telepítesz, akkor nem kell, ha saját felhasználóként telepíted.

Ennyi, és nem több egy flatpak telepítése, használata – semmiben nem más, mint bármely csomagkezelő használata.

Fontos, de volt róla szó

Ha felraktál egy komolyabb, nagyobb flatpak csomagot, akkor észrevehetted, hogy több letöltés is indul, több csomag is felkerül. Bár független a flatpak a Linux disztribúciódtól, de ez nem azt jelenti, hogy minden „függőség”, runtime stb. az adott csomag része lesz, úgy mint az AppImage-nél. Ezek közül sok olyan van, melyet nem csomagolnak be minden felhasználói programhoz, hanem külön flatpak csomagokat hoznak létre. Ez praktikus, hiszen így a fejlesztők könnyebben tudnak flatpak csomagokat készíteni, de van egy kellemetlen probléma velük. Nem fogja a flatpak parancs ezeket eltávolítani automatikusan, ha a felhasználó programot eltávolítjuk. Ez egyrészt nem elegáns, másrészt tárhelyet foglal el a gépeden. Ami nem is kevés, hiszen egy-egy felhasználói program hozhat magával több, esetleg nagyobb méretű ilyen „függőséget”.

Hogyan távolítsuk el a feleslegesé vált flatpak csomagokat?

Itt nem a felhasználói programokra gondolok (azt az ismert módon tehetjük meg), hanem azokra, amiket egy másik program rakott fel, mert neki kell. De elég udvariatlanul nem rak rendet maga mögött, hanem egy csomó szemetet hagy a gépen.

flatpak uninstall --unused

parancs eltávolítja mind a rendszer, mind a felhasználói programok összes nem használt függőségét. Kicsit használó a Debian alatt az autoremove-hez, közel egyazon feladatot lát el a flatpak csomagoknál, mint az a deb csomagoknál. Ez a lehetőség 2018. júniusában kiadott Flatpak 0.11.8-val vezették be, így ehhez ez verzió, vagy újabb kell: (flatpak --version: Verzió információk kiírása és kilépés). Ami nem jelent gondot a legtöbb rolling rendszerben, de szerintem sehol sem, de ha nem megy a dolog, ezt nézd meg először!
Ezt a lehetőséget érdemes az update után lefuttatni, így nem csak friss, hanem tiszta is lesz a rendszerünk.

laci:~/ $ flatpak uninstall --unused [10:05:29]
Uninstalling from system: runtime/com.github.wwmm.pulseeffects.plugin.lsp-plugins/x86_64/4 Is this ok? [y/n]:****

Azaz rákérdez, hogy szeretnéd eltávolítani? Ezután egy ENTER, vagy y, és máris leszedi a feleslegessé vált, a gépen ott maradt flatpak csomagokat.

Flatpak csomagok „hibája”

Aki már telepített flatpak csomagot, észrevehette, hogy kicsit másképp néznek ki mint az elvárt témázás, azaz nem biztos, hogy azt a témát használja, amit mi beállítottunk a rendszerhez globálisan. Én szeretem ha legtöbb program egyformán jelenik meg, és a kinézet a lehető legegységesebb. Ez sok esetben nem jelent gondot, hiszen több olyan program van, amiben átállítható a színösszeállítás, témázás. Ahol nem, ott sincs gond, hiszen mint mindenre, a Linux alatt van megoldás.

A probléma javítása az aktuális, általad használt Gtk téma telepítése a Flathubból. Ily módon a flatpak alkalmazások automatikusan felveszik a jelenlegi Gtk rendszertémáját, és azt használják. Vagy nem...

Nem minden Gtk-téma áll rendelkezésre a Flathub-on, így nem minden esetben fogsz olyant találni, ami a flatpakokat egységesíti a te kedvenc témáddal. De ha az általánosan elterjedt témákat használod, biztosan találsz olyant, ami számodra megfelelő.

Hogyan tudod lekérdezni az össze flatpak témát, ami elérhető a flathub-on?

flatpak remote-ls flathub --system | grep org.gtk.Gtk3theme

A system kapcsolóval adjuk meg, hogy a rendszerhez szükséges, nem felhasználói programok közt keressen. Előfordulhat, hogy nem is kell ez a kapcsoló, de nálam, ha nincs megadva, akkor panaszkodik a flatpak parancs: „hiba: Nem lett távoli tároló kiválasztva a(z) „flathub” feloldásához, amely több telepítésben is létezik”. Mivel az user és a system tároló is elérhető...

Erre kapsz egy listát, ami felsorolja az összes, jelenleg elérhető GTK3-as témát. Ezek közöl válaszd ki azt, amit te használsz, majd installáld fel. Például az Ambiance téma felrakása:

flatpak install flathub org.gtk.Gtk3theme.Ambiance

Azaz ez sem más, mint bármely flatpak csomag telepítése.
Amióta ennek a cikknek az eredetijét írtam, vagyis jó három éve, a témakínálat sokkal nagyobb lett. Így a Linux Mint alap témái közül sok alapból megtalálható. Nagyot fejlődött a kínálat!

Vagy nem...

Vagy nem lesz semmi változás. Ez is benne van a pakliban. Több oka is van, hogy hiába rakod fel a megfelelő témát, követed a leírást az adott program nem akar azonos kinézetet produkálni. Ez a legtöbb esetben nem a flatpak rendszer hibája! Sok program van, ami nem a GTK készletet követik, hanem mást. Ilyen esetben nem sok lehetőséged van, hacsak maga a program valahol a beállításoknál nem ad lehetőséget a kinézet, a téma változtatására. Ha találsz a beállításoknál ilyen lehetőséget, akkor a "Rendszer színsémája" vagy az "Alapértelmezett" vagy hasonló beállításoknál esetleg felveszi a rendszeredben megadott alap beállítást. Kis kísérletezés kell, a legtöbb, de nem mindegyik esetben ki lehet hozni valami elfogadható eredményt.

Ha nincs olyan flatpak téma ami jó?

Ez már komolyabb megoldásokat kíván. Sok olyan szép téma van, aminek a megfelelője nem kapott flatpak téma csomagot. Ilyenkor sem kell a vegyes kinézetet elfogadni, egy kerülő megoldással rákényszeríthetjük a rendszert az általunk használt témára. Az esetek nagy részében működik, és mindenképp ismerni érdemes ezt az utat is, mert ezzel lehet trükközni!

De a konkrét megoldás előtt egy kis alapozás. A flatpak alkalmazások egy „tárolóban” futnak, így nem férnek hozzá a gazdagép fájlrendszerhez, hálózathoz vagy fizikai eszközökhöz anélkül, hogy a megfelelő engedélyeket kifejezetten beállították volna, mi pedig ezt fogjuk tenni! Ez alapesetben jó dolog, mert így biztonságosabb a rendszer, hogy egy "idegen" telepítős program "ketrecbe" kerül, nem kap meg mindenféle elérést. Ne várd el, hogy automatikusan megváltoztassa a flatpak saját témáit, amikor módosítjuk rendszertémát! Ezt egyetlen paranccsal módosíthatjuk az összes flatpak alkalmazáshoz. Elvileg. Itt is van egy bizonyos hibatűrés, mert lehet, hogy a Te rendszeredben nem fog jól működni.
A GTK témák itt találhatók /usr/share/themes és /usr/share/icons minden felhasználó számára, valamint a ~/.themes és ~/.icons-ban egy adott felhasználó számára. Ha "kézzel" telepítenél témát, akkor mindenképp érdemes a saját könyvtárba rakni, követve azt az elvet, hogy ha nem muszáj nem kell rendszerszintű változtatásokat eszközölni.
Ha az összes flatpak csomagnak engedélyt szeretnél adni a ~/.themes és ~/.icons eléréséhez, futtasd a következő parancsot:

sudo flatpak override --filesystem=$HOME/.themes
sudo flatpak override --filesystem=$HOME/.icons

Láthatóan itt is a saját könyvtáradban lévő erőforrásokra adtál meg utasítás! Nem adhatsz hozzáférést a /usr/share/themes fájlhoz, mert a Flatpak dokumentációja szerint tiltólistán vannak.

Nem elegendő hozzáférést biztosítani a témák és ikonok könyvtárához, mert ez a könyvtár több témát/ikont is tartalmazhat. A flatpak-nak meg kell adni konkrétan, hogy melyik GTK témát/ikont használja.
Először nézd meg a kívánt téma, ikon nevét, majd alkalmazd a következő parancsot:

sudo flatpak override --env=GTK_THEME=my-theme 
sudo flatpak override --env=ICON_THEME=my-icon-theme 

Általában a téma könyvtárban az alkönyvtárak neve lesz a téma neve. Figyelj a kis és nagybetűkre. Ha nem vált át a téma, akkor le kell állítani a programot (nem csak ikonizálni!) és újra indítani.

Egy programhoz rendelünk egy külön GTK témát, ikonkészletet

A megoldás nagyon hasonló az előzőekhez, csak nem globálisan a felhasználó összes flatpak programjához rendelünk egy beállítást, hanem csak egy programhoz. Kis munkával nagyon szép és egyedi beállításokat is elkészíthetünk.
Ha megadtuk az előbbiekben a téma és ikon könyvtárakat, akkor egyedi programhoz egy téma/ikon rendelése egyszerű:

sudo flatpak override org.gnome.Calculator --env=GTK_THEME=my-theme 
sudo flatpak override org.gnome.Calculator --env=ICON_THEME=my-icon-theme 

Arra is van megoldás, ha csak egy program számára akarod engedélyezni a ~/.themes és ~/.icons mappák elérését, akkor nem globálisan, általánosságban kell megadni, hanem a programra kihegyezve:

sudo flatpak override org.gnome.Calculator --filesystem=$HOME/.themes
sudo flatpak override org.gnome.Calculator --filesystem=$HOME/.icons

Egyedi beállítások törlése hasonló, csak "üres" értéket adunk meg:

sudo flatpak override org.gnome.Calculator --env=GTK_THEME=
sudo flatpak override org.gnome.Calculator --env=ICON_THEME= 

vagy

sudo flatpak override --reset org.gnome.Calculator

Ha globálisan akarunk megválni a beállításoktól, akkor a

sudo flatpak override --reset

paranccsal visszaáll minden az eredeti állapotba.

KDE (qt) flatpak alkalmazások beállítása

Ez már nem ilyen egyszerű... A tapasztalatom szerint a KDE alkalmazások viszonylag jól követik az alapbeállítást, így nagy tapasztalatom nincs ebben.

A KDE Plasma a Qt keretrendszert használja. Tehát ebben az esetben a témák alkalmazása a qt-alapú alkalmazásokra meglehetősen egyszerű. Szerencsére a KDE rendszerbeállításokon keresztül alkalmazott globális téma legtöbbször a flatpak alkalmazásokra is vonatkozik. De ahhoz, hogy a megjelenés teljes legyen, hozzá kell adnunk egy kvantum témát.
A kvantum téma alkalmazásához telepíteni kell a kvantum csomagot a Flathubból:

flatpak install org.kde.KStyle.Kvantum

Ezután módosíthatjuk a témát a kvantum manager alkalmazáson keresztül. A kvantum téma megváltoztatása után:

sudo flatpak override --env=QT_STYLE_OVERRIDE=kvantum --filesystem=xdg-config/Kvantum:ro 

Elvileg ez jó lesz a KDE asztali környezetben, és talán jó lesz egy GTK-s környezetben is.

Fontos!

A legtöbb ilyen felülbírálás jó eséllyel működik. Ha nem, akkor egy gyors google keresés segíteni szokott. Amit érdemes észben tartani: minden változik, így a lehető legfrissebb leírásokat használjuk. Bár sok helyen ennél mélyebb változtatásokat is javasolnak, de én óvatos vagyok. Egy program szépészeti megoldása nem ér annyit, hogy ennél mélyebben belenyúljak a rendszerbe. Az esetek nagyon-nagy százalékában minden jól megy, úgy néz ki ahogy kell. Nem kellene nagyon belegányolni a rendszerbe!

Arcolinux alatt 2020. januárjában teszteltem ezt.
Kiegészítve: 2023-08-29

Ha tetszett a bejegyzés látogass el a blogomba: https://magyarlinux.hu/

A youtube csatornám: https://www.youtube.com/channel/UCk1lOfX4qlaeEk2VhLu5DRg

Ha a bejegyzéshez tartalmi kiegészítést teszel, amit érdemes lehet az eredetibe is elhelyezni, akkor azt jelezd a linuxvideok@protonmail.com címemre! A blog alatti hozzászólásokat nem mindig nézem.

Hozzászólások

Balazs_B képe

Köszi!

Jó és részletes leírás!

Én nagyon szeretem az univerzális csomagokat, gondolok itt az AppImage és a Flatpak típusokra. Linux Mint fehasználó létemből kifolyólag a Snap-et nem használom.

No de persze nem azért mert egyatlan FanBoy vagyok. Amikor évekkel ezelőtt kijött a Snap meg a flatpak és még Ubuntut használtam, már akkor váltottam Flatpakre, egyszerűen azért mert jobban és megbízhatóbban működött.

Szerintem akkor jó egy szoftver ha a felhasználó nem veszi észre ha ott van, gondolok itt arra hogy megnyitom, hasznláom, bezárom és kész. Nos a Snapnél már sokszor problémás volt az indítás. A Flaptak meg az Appimage meg egyszerűen  csak működtek. Nem értettem már akkor hogy az Ubuntu saját univerzális csomagja nem megy az Ubuntu alól.....

Nos ezért használtam a Flatpaket és később váltottam Mintre. Most főként Flatpaket használom mert egyszerűen csak működik gond nélkül és szuper az integrációja a Mintben.

Szerintem az univerzálics csomagmegoldások sokat segítenek abban is hogy halványítják a határokat a Rolling Release meg a Stable disztribúciók között.

Értékelés: 

0
Még nincs értékelve