Kako korak za korakom ustvariti paket Flatpak v Linuxu

Zadnja posodobitev: 04/12/2025
Avtor: Isaac
  • Flatpak vam omogoča pakiranje aplikacij in njihovih odvisnosti v prenosne, izolirane vsebnike za več distribucij. Linux.
  • Paketi Flatpak temeljijo na skupnih izvajalnih okoljih, obsežnih metapodatkih in jasni strukturi datotek, ikon in podatkov o aplikacijah.
  • Flathub deluje kot centralno skladišče za aplikacije Flatpak, čeprav njegov postopek objavljanja zahteva podrobne manifeste in prevajanje brez dostopa do omrežja.

Vodnik po korakih za ustvarjanje paketa Flatpak

Če delate z GNU/Linuxom in vas zanima preprosta distribucija aplikacij, boste prej ali slej naleteli na Flatpak. Ta oblika pakiranja je postala eden najbolj priljubljenih načinov za dostavo namiznih aplikacij. ki delujejo enako na skoraj vsaki distribuciji, brez težav z odvisnostmi ali upravljalnikom paketov.

V tem vodniku bomo videli Kako korak za korakom, od začetka in zelo podrobno ustvariti paket FlatpakVideli boste, kaj točno je Flatpak, zakaj je danes tako pomemben, kaj morate pripraviti v svojem okolju, kako strukturirati paket, katere metapodatke potrebujete, kako ga namestiti, preizkusiti, izvoziti v repozitorij in celo kaj pomeni naložiti na Flathub. Vse to s praktičnim pristopom in na dostopen način, da se vam ne bo zdelo preveč.

Kaj je Flatpak in zakaj je postal tako pomemben?

Kaj je Flatpak in kako deluje?

Flatpak je tehnologija pakiranja in distribucije programske opreme za Linux, ki temelji na vsebnikihIdeja je zelo preprosta, a močna: namesto da bi bila odvisna od upravitelja paketov posamezne distribucije, je aplikacija zapakirana skupaj s knjižnicami in odvisnostmi, ki jih potrebuje, in deluje v izoliranem okolju (peskovniku), ki zagotavlja dosledno delovanje na kateri koli združljivi distribuciji.

V praksi, Paket Flatpak vključuje aplikacijo in vse knjižnice, potrebne za njeno delovanje.brez poseganja v preostale sistemske programe. S tem se izognemo klasičnemu peklu odvisnosti, zmanjšamo konflikte in razvijalcu omogočimo neposreden nadzor nad distribucijo in posodabljanjem aplikacije, ne da bi moral čakati, da jo vzdrževalec distribucije zapakira.

Da bi to dosegli, se Flatpak zanaša na skupna izvajalna okoljaTa izvajalna okolja zagotavljajo skupno osnovo (na primer specifično različico platforme GNOME), na kateri teče več aplikacij. Na ta način vam ni treba zapakirati absolutno vsega v vsako aplikacijo, temveč le tisto, kar ni že vključeno v izvajalno okolje, kar prihrani prostor in poenostavi vzdrževanje.

Poleg tega se aplikacije Flatpak izvajajo na peskovnik z lastnim sistemom dovoljenjTa model vam omogoča nadzor dostopa do virov, kot so datotečni sistem, omrežje, Bluetooth, zvok ali grafični strežnik (X11/Wayland). Izolacija izboljša varnost in omeji morebitno škodo zaradi zlonamerne ali poškodovane aplikacije.

Ena od velikih prednosti za uporabnike in administratorje je, da Paketi Flatpak se nameščajo in posodabljajo neodvisno od upravitelja paketov distribucije.Aplikacije Flatpak lahko sobivajo z izvornimi paketi, ne da bi se medsebojno motili, in celo upravljate več različic iste aplikacije hkrati.

Prednosti in slabosti Flatpaka v primerjavi z drugimi formati

Prednosti in slabosti Flatpaka

Ekosistem GNU/Linux je vedno imel več sistemov pakiranja: deb, rpm, AppImage, Snap, Flatpak… Vsak od njih rešuje problem distribucije programske opreme na svoj način. Flatpak blesti še posebej na namiznih računalnikih in ni naključje, da ga številne večje distribucije privzeto podpirajo.

Med glavnimi Prednosti Flatpaka z vidika uporabnika lahko izstopamo:

  • Enostavna in univerzalna namestitev: Z eno samo obliko paketa lahko namestite isto aplikacijo na različne distribucije (Debian, Fedora, openSUSE, Arch itd.), če imajo omogočen Flatpak.
  • Izboljšana izolacija in varnost: Aplikacije se izvajajo v peskovniku z eksplicitnimi dovoljenji, kar zmanjšuje tveganja in konflikte med programi.
  • Samodejne in centralizirane posodobitve: Z enim ukazom lahko posodobite vse svoje aplikacije Flatpak, ne glede na distribucijski cikel.
  • Soobstoj več različic: Možno je imeti nameščenih več različic iste aplikacije, kar je zelo uporabno za razvijalce ali testna okolja.
  • Manj težav z združljivostjo: Odvisnosti nadzoruje sam paket in/ali izvajalno okolje, s čimer se zmanjšajo konflikti s sistemskimi knjižnicami.

Flatpak je zelo privlačen tudi za razvijalce. Omogoča vam neposredno objavo aplikacije, ne da bi bili odvisni od vzdrževalca, ki jo bo zapakiral za vsako distribucijo posebej.Ko naložite svojo aplikacijo (na primer v Flathub), jo lahko vsak uporabnik Linuxa z omogočenim Flatpakom namesti z enim ali dvema ukazoma. ukaziali celo iz trgovine z grafično programsko opremo v vašem okolju.

Ta neposrednost pomeni, da Nova različica vaše aplikacije lahko hkrati doseže uporabnike različnih distribucij.To je še posebej zanimivo pri distribucijah s počasnimi cikli izdajanja, kjer posodabljanje uradnih paketov traja dolgo. Poleg tega izvajalno okolje ponuja homogeno osnovo, s čimer se zmanjša število kombinacij knjižnic, ki jih je treba podpirati.

  Kaj lahko storim, da blokiram dostop do Facebooka? Kako odstraniti omejen dostop na Facebooku?

To niso vse prednosti. Obstajajo Nekaj ​​slabosti in cestnin, ki jih je treba upoštevati:

  • Velikosti paketov: Paketi Flatpak običajno zavzamejo več prostora kot tradicionalni izvorni paketi, ker vključujejo dodatne odvisnosti ali si delijo velika izvajalna okolja. To povzroči več prenosov in večjo porabo diska.
  • Rahla kazen za uspešnost: Ker deluje v peskovniku in ima dodatne plasti abstrakcije, lahko v nekaterih primerih pride do majhnega vpliva na zmogljivost, čeprav je ta za večino uporabnikov običajno minimalen.
  • Odvisnost od repozitorijev Flatpak: Če se aplikacija distribuira samo prek Flathuba ali drugega repozitorija Flatpak, ste vezani na to, da je ta repozitorij aktiven in posodobljen.
  • Kompleksnost pakiranja: Ustvarjanje dobro izdelanega Flatpaka, zlasti za uvajanje na Flathubu, je lahko veliko bolj zamudno, kot se sprva zdi, zlasti glede odvisnosti in metapodatkov.

Poleg tega v primerjavi z drugimi rešitvami, kot je Snap, Iskreno povedano, je lahko izkušnja pakiranja in razpakiranja nekoliko bolj zmedena.Uradna navodila so nekoliko razpršena, in če je vaš cilj objavljanje na Flathubu, je treba izpolniti še več korakov in zahtev.

Kako Flatpak deluje na tehnični ravni

Kako deluje Flatpak

Za popolno razumevanje, kako ustvariti paket Flatpak, je zelo koristno imeti jasno razumevanje njegove arhitekture. Flatpak temelji na dveh temeljnih delih: izvajalnih okoljih in aplikacijah.Izvajalno okolje je skupno izvajalno okolje, kot je na primer org.gnome.Platform/x86_64/3.22, ki zagotavlja skupno bazo knjižnic in komponent.

Aplikacija Flatpak v svojih metapodatkih navaja kakšen čas delovanja potrebuje za delovanjeNa ta način lahko več aplikacij uporablja isto izvajalno okolje, kar prihrani prostor in zagotovi združljivost. Rezultat je nekaj takega: »aplikacija se zanaša na stabilno in znano platformo, vse, kar ni na tej platformi, pa je zapakirano v sami aplikaciji.«

Aplikacije se izvajajo znotraj izolirane posode, ki omejujejo dostop do kritičnih virovTa izolacija se upravlja z nastavljivimi dovoljenji: dostop do omrežja, imeniki datotečnega sistema, vhodne naprave, zvok (PulseAudio), grafični strežnik (X11/Wayland), D-Bus za komunikacijo med procesi itd.

Ključna ideja je, da Oddelki so vodeni na bolj predvidljiv načinNamesto da bi se zanašal na različice sistemskih knjižnic, ki se lahko med distribucijami in različicami zelo razlikujejo, razvijalec vnaprej ve, katero izvajalno okolje bo na voljo, in če je potrebno nekaj novejšega ali bolj specifičnega, to vključi neposredno v paket.

Distribucija se običajno izvaja prek repozitorijev, kot so Flathub, ki deluje kot centralizirano skladišče za aplikacije FlatpakOd tam lahko uporabniki iščejo, prenašajo in nameščajo aplikacije z enim samim ukazom ali iz grafične trgovine. Možno je tudi ustvariti repozitorije po meri, kar je zelo uporabno v poslovnih ali izobraževalnih okoljih, kjer se aplikacije uvajajo na nadzorovan način.

Predpogoji za ustvarjanje paketa Flatpak

Preden začnete s pakiranjem, morate imeti jasno predstavo o tem, kaj Flatpak zahteva, da vse deluje. Obstajajo tri osnovne zahteve: nameščen Flatpak, ustrezno izvajalno okolje in definirana struktura paketa..

V praktično vsaki sodobni distribuciji lahko Namestite Flatpak iz upravitelja paketov distribucijeV Arch Linuxu, na primer, če namestite GNOME s skupinami paketov gnome y gnome-extraFlatpak se namesti samodejno kot odvisnost. Če ne, ga lahko namestite izrecno z upraviteljem paketov vaše distribucije (pacman, apt, dnf, zypper itd.).

Drugi korak je konfigurirajte vsaj eno izvajalno okoljeZa večino namiznih aplikacij se običajno zanašamo na platforme, kot so org.gnome.Platform ali tiste, ki jih ponuja KDE, vedno v arhitekturi in različici, ki jo boste uporabljali, na primer x86_64/3.22.

Ko sta Flatpak in izvajalno okolje pripravljena, je čas, da razmislite o strukturi paketa in v polno kvalificiranem imenu aplikacijeFlatpak uporablja konvencijo tipa com.distribuidor.App o org.test.HelloTo je podobno obratnim identifikatorjem domen. Ta identifikator bo uporabljen v vseh ukazih in v manifestu.

Končno boste potrebovali razvojna orodja, ki ustrezajo vašemu jeziku ali tehnologiji, ker Del postopka vključuje prevajanje ali pripravo binarnih datotek, ki bodo nato shranjene v vsebnik Flatpak.Ni enako zapakirati majhno lupino script kot kompleksna aplikacija v C++, Javi, Python ali Elektron.

Osnovna struktura paketa Flatpak

Paket Flatpak niso samo binarne datoteke. Vključuje več bistvenih elementov, ki opisujejo aplikacijo in omogočajo njeno integracijo z namizjem.Tipične komponente, ki sestavljajo paket Flatpak, vključujejo:

  • AppData (metapodatki aplikacije): Datoteke z informacijami o aplikaciji (običajno v formatu XML), ki vključujejo opis, posnetke zaslona, ​​kategorijo, povezavo do uradnega spletnega mesta itd. Te so bistvene za pravilen prikaz aplikacije v trgovinah s programsko opremo.
  • Ikone v različnih velikostih: Slike, prilagojene različnim gostotam zaslona, ​​vključno z zasloni z visoko ločljivostjo. Nameščene so v standardne poti, ki jih prepozna namizno okolje.
  • Datoteke .desktop: Bližnjice, ki omogočajo zagon aplikacije iz menija, zaganjalnika aplikacij ali doka namiznega okolja.
  • Konfiguracija D-Bus in druge storitve: Definicije za komunikacijo s sistemskim vodilom za sporočila, kot tudi integracija s PulseAudio za zvok in X11/Wayland za grafično predstavitev.
  • Datoteke, specifične za aplikacijo: Izvedljive datoteke, skripte, dodatne knjižnice, grafični viri itd. Skratka, vse, kar potrebujete za delovanje vašega programa.
  To je preprost način za rezanje in lepljenje pesmi iz računalnika z operacijskim sistemom Windows 10.

Za boljše razumevanje strukture si predstavljajte, da ustvarjate zelo preprost primer, »Pozdravljen svet«, zapakiran s Flatpakom. Za začetek lahko ustvarite hierarhijo imenikov, kot je ta:

mkdir hello
mkdir hello/files
mkdir hello/files/bin
mkdir hello/export

V mapi hello/files/bin bi postavili izvedljiva datoteka ali skripta ki ga želite zagnati, in v hello Imeli bi tipične metapodatke Flatpak, kot je datoteka aplikacije z razdelkom [Application] kjer sta navedena ime in vrstni red zagona.

Poenostavljen primer metapodatkov bi lahko izgledal nekako takole, kjer Določeni so identifikator, izvajalno okolje in glavni ukaz, ki ga je treba izvesti.:

[Application] name=org.test.Hello
runtime=org.gnome.Platform/x86_64/3.22
command=hello.sh

In datoteka hello.sh bi lahko bil a preprost skript lupine s to vsebino, ki bi bila nameščena znotraj files/bin:

#!/bin/sh
echo "Hello world, from a sandbox"

Ta primer je zelo osnoven, vendar To ponazarja idejo, da paket Flatpak vsebuje na eni strani datoteke aplikacije in na drugi strani vse informacije, potrebne za njeno pravilno integracijo in delovanje. znotraj specifičnega izvajalnega okolja.

Splošni koraki za ustvarjanje paketa Flatpak korak za korakom

Na podlagi vsega zgoraj navedenega lahko povzamemo osnovni potek pakiranja aplikacije v Flatpaku. Ti koraki veljajo tako za lokalne teste kot za resnejše publikacije. (čeprav, kot bomo videli, Flathub dodaja dodatne zahteve):

  1. Namestite Flatpak na svojo distribucijo Če ga še nimate, uporabite izvorni upravljalnik paketov (apt, dnf, pacman itd.).
  2. Konfigurirajte primerno okolje izvajanjaNa primer tako, da dodate Flathub kot repozitorij in prenesete izvajalno okolje, potrebno za vašo aplikacijo.
  3. Definirajte strukturo paketa in njegov polni identifikator (tipa com.tuempresa.TuApp), poleg ustvarjanja map z datotekami, metapodatkov, ikon, podatkov o aplikacijah itd.
  4. Zgradite paket in ga izvozite v repozitorij lokalno ali oddaljeno, na primer z ukazom, kot je flatpak build-export repo hello, kje repo je mapa repozitorija in hello To je imenik z datoteko build.
  5. Namestite paket iz tega repozitorija in ga preizkusite. da se preveri, ali znotraj peskovnika vse deluje po pričakovanjih.

Ukaz flatpak build-export se lahko kombinira s podpisi GPG za za zagotovitev avtentičnosti razvijalca in celovitosti paketaTo je še posebej zanimivo pri distribuciji aplikacij v okoljih, kjer je kriptografsko preverjanje pomembno.

Upoštevajte to Zgornji koraki opisujejo dokaj preprost, lokalno usmerjen potek dela.Ko govorimo o Flathubu, se zgodba nekoliko zaplete, saj repozitorij ne sprejema vnaprej prevedenih paketov, temveč datoteke Flatpak prevaja na svojih strežnikih z omejenim dostopom do omrežja.

Namestitev, zagon in upravljanje aplikacij Flatpak iz terminala

Ko imate svoj paket ali želite preizkusiti druge, Upravljanje aplikacij Flatpak iz ukazne vrstice je precej preprostoOglejmo si nekaj tipičnih primerov, ki vam bodo pomagali razumeti, kako bi se vaš paket uporabljal po zapakiranju.

Predstavljajte si, da ste ustvarili majhno skladišče z imenom tutorial-repo ki vsebuje vašo vzorčno prijavo org.test.Hello. Če želite dodati ta repozitorij in namestiti aplikacijo samo za svojega uporabnikaLahko bi uporabili:

flatpak --user remote-add --no-gpg-verify tutorial-repo repo
flatpak --user install tutorial-repo org.test.Hello
flatpak run org.test.Hello

Parameter --user označuje, da se namestitev izvaja v osebni imenik uporabnika, brez potrebe po skrbniških dovoljenjih in brez vplivanja na preostale sistemske računeIdealen je za večuporabniška okolja, kjer se lahko vsak uporabnik sam odloči, katere aplikacije Flatpak želi imeti.

Klasični primer je namestitev igre, kot je GNOME Chess, samo za vašega uporabnika. Ukaz bi lahko izgledal takole (ob predpostavki, da kot repozitorij uporabljate Flathub):

flatpak install --user https://dl.flathub.org/repo/appstream/org.gnome.Chess.flatpakref

Aplikacije lahko namestite tako, da neposredno določite referenčna datoteka .flatpakref, kot je to v primeru z GIMP iz Flathuba, z uporabo nečesa takega kot:

flatpak install https://dl.flathub.org/repo/appstream/org.gimp.GIMP.flatpakref

Da bo vse posodobljeno, ukaz flatpak update Odgovoren je za posodabljanje nameščenih aplikacij.Lahko ga zaženete občasno ali pa ga celo integrirate v skrbniške skripte, kot se to počne v nekaterih izobraževalnih ali poslovnih okoljih, kjer so aplikacije nameščene v sistemskem načinu za vse uporabnike.

Poleg nameščanja in posodabljanja vam Flatpak omogoča Seznam, odstranitev in čiščenje aplikacij in izvajalnih okolij ki jih ne uporabljate več. Ukaz cleanup je še posebej uporaben za brisanje osirotelih knjižnic in odvisnosti, s čimer sprostite prostor na disku po odstranitvi aplikacij Flatpak.

  Lahko načrtujete svoj proračun za hrano. Možno je!

Flathub, repozitoriji in uvajanje aplikacij Flatpak

Flathub se je uveljavil kot glavno in najbolj znano skladišče aplikacij FlatpakTo je kraj, kjer večina uporabnikov išče nove programe in kjer mnogi razvijalci objavljajo posodobljene različice svojih namiznih aplikacij.

Na Flathubu lahko najdete ogromno različnih programske opreme, organizirano po kategorijah, kot so zvok in video, razvoj, izobraževanje, igre, grafika, komunikacija, produktivnost, znanost, pripomočki itd.Vključuje znane aplikacije, kot so VLC, GIMP, LibreOffice, Audacity, ParnaInkscape, Blender, Signal, Telegram, Calibre in mnogi drugi.

Na spletni strani Flathub lahko Poiščite aplikacijo, kliknite gumb NAMESTI in pridobite referenco .flatpakref, ki se nato posreduje ukazu flatpak installTa referenca vsebuje informacije, ki jih Flatpak potrebuje, da ve, s katerega daljinskega upravljalnika naj prenese aplikacijo, kateri izvajalni sistem naj uporabi itd.

Če ste v bolj nadzorovanem okolju, kot je podjetje ali šola, Možno je tudi ustvariti lastna repozitorija in v njih objaviti svoje aplikacijeV mnogih izobraževalnih ustanovah se na primer Ansible ali druga orodja za avtomatizacijo uporabljajo za uvajanje aplikacij Flatpak v sistemskem načinu, tako da so na voljo vsem uporabnikom računalnika.

Namestitev v sistemskem načinu običajno zahteva skrbniške pravice, vendar Ponuja prednost, da so aplikacije na voljo centralizirano.Namestitev z --user Idealen je za zagotavljanje fleksibilnosti vsaki osebi, ne da bi bilo treba spreminjati osnovni programski paket stroja.

Ustvarite paket Flatpak za objavo na Flathubu

Tukaj pride eden najbolj občutljivih delov. Izdelava delujočega Flatpaka na vašem računalniku je le polovica zgodbeČe želite objavo opraviti na Flathubu, ima postopek dodatne zahteve in omejitve, ki se jih morate zavedati že od samega začetka, da se izognete morebitnim razočaranjem.

Za začetek Navodila na glavni spletni strani Flatpak se osredotočajo na dokaj "odprt" potek gradnje.V tradicionalnem okolju za gradnjo lahko vaše okolje za gradnjo dostopa do omrežja za prenos odvisnosti, kloniranje repozitorijev in tako naprej. Vendar Flathub prevaja pakete na svojih strežnikih in postopek gradnje tam nima dostopa do interneta. To pomeni, da mora biti vse, kar potrebujete, opisano v manifestu z dobro definiranimi URL-ji izvorne kode.

Z drugimi besedami, če je vaša aplikacija odvisna od več zunanjih knjižnic ali modulov, V manifestu Flatpak morate izrecno dodati vire za vsako odvisnost.tudi če ga že imaš requirements.txt V primeru Pythona ali druge datoteke odvisnosti v vaši tehnologiji vas to lahko prisili, da za ustvarjanje teh razdelkov uporabite (včasih neizpopolnjene) pomožne skripte, poleg tega pa boste morali še vedno ročno preverjati stvari, kot so odvisnosti pri gradnji.

Praktična posledica je, da Reševanje vseh odvisnosti in zagon gradnje brez povezave lahko traja več urTo še posebej velja za kompleksne aplikacije ali tiste z veliko zunanjimi knjižnicami. V nekaterih visokonivojskih jezikih, kot je Python, je lahko iskanje vseh pravilnih odvisnosti gradnje precej dolgočasno.

Druga pomembna točka je ta V Flathubu ne morete uporabljati kar katerega koli izvajalnega okolja.Zanašate se lahko le na izvajalna okolja, ki gostujejo na samem Flathubu, kar vas včasih sili v ročno prevajanje in vključitev več odvisnosti, kot bi želeli. To pomnoži delo pakiranja in količino stvari, ki jih morate dolgoročno vzdrževati.

Poleg manifesta in odvisnosti Flathub zahteva dokaj podrobna datoteka z metapodatkiTo vključuje informacije, kot so podroben opis, posnetki zaslona, ​​povezave, licence, kategorije in v mnogih primerih opombe ob izdaji za vsako posodobitev. To zahteva stalno vzdrževanje vsakič, ko izdate novo različico.

Tudi postopek uvajanja ni trivialen. Za objavo na Flathubu morate zahtevati določen repozitorij znotraj organizacije Flathub na GitHubu.To vključuje postopek pregleda in konfiguriranje dejanj ali delovnih tokov, ki se integrirajo z infrastrukturo gradnje Flathub. Dokumentacija omenja dejanja GitHub, vendar ne pojasnjuje vedno jasno, kako se ta dejanja ujemajo z uradnim repozitorijem organizacije.

Zaradi vseh teh razlogov nekateri razvijalci po testiranju komentirajo, da Ustvarjanje Flatpaka za Flathub je lahko frustrirajoče in zelo zamudno.To je privedlo do razmisleka o alternativnih formatih, kot je Snap, kadar je cilj bolj neposredna in manj nemotena uvedba. Kljub temu pa prednost doseganja zelo široke uporabniške baze in več distribucij v mnogih primerih naredi trud vreden truda.