Flatpak 1.14.0 ինքնաբավ փաթեթների համակարգի թողարկում

Հրապարակվել է Flatpak 1.14 գործիքակազմի նոր կայուն մասնաճյուղը, որն ապահովում է համակարգ ստեղծելու ինքնուրույն փաթեթներ, որոնք կապված չեն հատուկ Linux բաշխումների հետ և աշխատում են հատուկ կոնտեյներով, որը մեկուսացնում է հավելվածը մնացած համակարգից: Flatpak փաթեթների գործարկման աջակցությունը տրամադրվում է Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux և Ubuntu-ի համար: Flatpak փաթեթները ներառված են Fedora-ի պահոցում և աջակցվում են GNOME հավելվածի հայրենի կառավարչի կողմից:

Հիմնական նորամուծությունները Flatpak 1.14 մասնաճյուղում.

  • Հնարավոր է ստեղծել գրացուցակ (.local/state) վիճակում գտնվող ֆայլերի համար և սահմանել XDG_STATE_HOME միջավայրի փոփոխականը՝ մատնանշելով այս գրացուցակը:
  • Ավելացվել են «have-kernel-module-name» ձևի պայմանական ստուգումներ՝ միջուկի մոդուլների առկայությունը որոշելու համար (նախկինում առաջարկված have-intel-gpu ստուգման ունիվերսալ անալոգը, որի փոխարեն «have-kernel-module-i915» արտահայտությունը: այժմ կարող է օգտագործվել):
  • «flatpak document-unexport —doc-id=…» հրամանն իրականացվել է:
  • Ապահովված է Appstream մետատվյալների արտահանում՝ հիմնական միջավայրում օգտագործելու համար:
  • Ավելացվել են flatpak հրամանի ավարտման կանոններ Fish shell-ի համար
  • Ցանցի մուտքը X11 և PulseAudio ծառայություններին թույլատրվում է (եթե ավելացվեն համապատասխան կարգավորումները):
  • Git պահեստի հիմնական մասնաճյուղը վերանվանվել է «վարպետից» «հիմնականի», քանի որ «վարպետ» բառը վերջերս համարվում էր քաղաքականապես ոչ կոռեկտ:
  • Գործարկման սկրիպտներն այժմ վերագրվում են, եթե հավելվածը վերանվանվի:
  • Տեղադրման հրամանին ավելացվել են «--include-sdk» և «--include-debug» տարբերակները՝ SDK և debuginfo ֆայլերը տեղադրելու համար:
  • Ավելացվել է «DeploySideloadCollectionID» պարամետրի աջակցություն flatpakref և flatpakrepo ֆայլերին: Երբ սահմանվի, հավաքածուի ID-ն կսահմանվի հեռավոր պահոց ավելացնելիս, և ոչ թե մետատվյալները բեռնելուց հետո:
  • Թույլատրվում է ստեղծել ավազատուփի ներդիր միջավայրեր մշակողների համար առանձին MPRIS (Media Player Remote Interfacing Specification) անուններով աշխատաշրջաններում:
  • Հրամանի տողի կոմունալ ծառայություններն այժմ տեղեկատվություն են տրամադրում հնացած գործարկման ընդլայնումների օգտագործման մասին:
  • Uninstall հրամանն իրականացնում է հաստատման հարցում նախքան գործարկման ժամանակի կամ գործարկման ընդլայնումները հեռացնելը, որոնք դեռ օգտագործվում են:
  • Ավելացվել է «--socket=gpg-agent» տարբերակի աջակցությունը այնպիսի հրամաններին, ինչպիսին է «flatpak run»:
  • Libostree-ում ֆիքսվել է խոցելիություն, որը կարող է պոտենցիալ թույլ տալ օգտվողին ջնջել կամայական ֆայլերը համակարգում flatpak-system-helper handler-ի մանիպուլյացիայի միջոցով (ջնջման հարցում ուղարկելով հատուկ ձևաչափված մասնաճյուղի անունով): Խնդիրը հայտնվում է միայն Flatpak-ի և libostree-ի ավելի հին տարբերակներում, որոնք թողարկվել են մինչև 2018 թվականը (< 0.10.2) և չի ազդում ընթացիկ թողարկումների վրա:

Հիշեցնենք, որ Flatpak-ը հավելվածների մշակողներին թույլ է տալիս պարզեցնել իրենց ծրագրերի բաշխումը, որոնք ներառված չեն ստանդարտ բաշխման պահոցներում՝ պատրաստելով մեկ ունիվերսալ կոնտեյներ՝ առանց յուրաքանչյուր բաշխման համար առանձին հավաքներ ստեղծելու: Անվտանգության գիտակցությամբ զբաղվող օգտատերերի համար Flatpak-ը թույլ է տալիս կասկածելի հավելված գործարկել կոնտեյներով՝ ապահովելով միայն հավելվածի հետ կապված ցանցային գործառույթների և օգտագործողի ֆայլերի մուտքը: Նոր ապրանքներով հետաքրքրված օգտատերերի համար Flatpak-ը թույլ է տալիս տեղադրել հավելվածների վերջին թեստային և կայուն թողարկումները՝ առանց համակարգում փոփոխություններ կատարելու անհրաժեշտության: Օրինակ, Flatpak փաթեթները կառուցված են LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio և այլն:

Փաթեթի չափը նվազեցնելու համար այն ներառում է միայն հավելվածներին հատուկ կախվածություններ, իսկ հիմնական համակարգի և գրաֆիկական գրադարանները (GTK, Qt, GNOME և KDE գրադարաններ և այլն) նախագծված են որպես plug-in ստանդարտ գործարկման միջավայրեր: Flatpak-ի և Snap-ի հիմնական տարբերությունն այն է, որ Snap-ը օգտագործում է հիմնական համակարգի միջավայրի բաղադրիչները և մեկուսացումը, որը հիմնված է զտման համակարգի զանգերի վրա, մինչդեռ Flatpak-ը ստեղծում է համակարգից առանձին կոնտեյներ և գործում է մեծ գործարկման հավաքածուներով՝ տրամադրելով ոչ թե փաթեթներ որպես կախվածություն, այլ ստանդարտ: մեկ համակարգային միջավայրեր (օրինակ՝ բոլոր գրադարանները, որոնք անհրաժեշտ են GNOME կամ KDE ծրագրերի գործարկման համար):

Ի լրումն ստանդարտ համակարգի միջավայրի (աշխատանքի), որը տեղադրված է հատուկ պահեստի միջոցով, տրամադրվում են հավելվածի շահագործման համար անհրաժեշտ լրացուցիչ կախվածություններ (փաթեթ): Ընդհանուր առմամբ, գործարկման ժամանակը և փաթեթը կազմում են կոնտեյների լցոնումը, չնայած այն հանգամանքին, որ գործարկման ժամանակը տեղադրված է առանձին և կապված է միանգամից մի քանի կոնտեյների հետ, ինչը թույլ է տալիս խուսափել բեռնարկղերի համար սովորական համակարգի ֆայլերի կրկնօրինակումից: Մեկ համակարգում կարող են տեղադրվել մի քանի տարբեր գործարկման ժամանակներ (GNOME, KDE) կամ նույն գործարկման մի քանի տարբերակներ (GNOME 3.40, GNOME 3.42): Հավելվածը որպես կախվածություն ունեցող կոնտեյները օգտագործում է կապակցում միայն կոնկրետ գործարկման ժամանակի համար՝ առանց հաշվի առնելու աշխատաժամանակը կազմող առանձին փաթեթները։ Բոլոր բացակայող տարրերը փաթեթավորված են անմիջապես հավելվածի հետ: Երբ ձևավորվում է կոնտեյներ, գործարկման ժամանակի բովանդակությունը տեղադրվում է որպես /usr միջնորմ, իսկ փաթեթը տեղադրվում է /app գրացուցակում:

Գործարկման ժամանակը և հավելվածի բեռնարկղերը կառուցված են OSTree տեխնոլոգիայի միջոցով, որում պատկերը ատոմային կերպով թարմացվում է Git-ի նման պահոցից, որը թույլ է տալիս տարբերակի վերահսկման մեթոդները կիրառել բաշխման բաղադրիչների վրա (օրինակ՝ դուք կարող եք արագորեն հետ գլորել համակարգը դեպի նախորդ վիճակ): RPM փաթեթները թարգմանվում են OSTree պահոց՝ օգտագործելով rpm-ostree հատուկ շերտ: Աշխատանքային միջավայրում փաթեթների առանձին տեղադրումը և թարմացումը չի ապահովվում, համակարգը թարմացվում է ոչ թե առանձին բաղադրիչների մակարդակով, այլ որպես ամբողջություն՝ ատոմային կերպով փոխելով իր վիճակը: Ապահովում է գործիքներ՝ թարմացումները աստիճանաբար կիրառելու համար՝ վերացնելով յուրաքանչյուր թարմացումով պատկերն ամբողջությամբ փոխարինելու անհրաժեշտությունը:

Ստեղծված մեկուսացված միջավայրը լիովին անկախ է օգտագործվող բաշխումից և, փաթեթի պատշաճ կարգավորումներով, չունի օգտվողի կամ հիմնական համակարգի ֆայլեր և գործընթացներ, չի կարող ուղղակիորեն մուտք գործել սարքավորում, բացառությամբ DRI-ի միջոցով ելքի, և զանգեր դեպի ցանցային ենթահամակարգ: Գրաֆիկական ելքի և մուտքագրման կազմակերպումն իրականացվում է Wayland արձանագրության կամ X11 վարդակից փոխանցման միջոցով: Արտաքին միջավայրի հետ փոխգործակցությունը հիմնված է DBus հաղորդագրությունների համակարգի և հատուկ Portals API-ի վրա:

Մեկուսացման համար օգտագործվում են Bubblewrap շերտը և Linux կոնտեյներների վիրտուալացման ավանդական տեխնոլոգիաները՝ հիմնված cgroups-ի, namespace-ների, Seccomp-ի և SELinux-ի օգտագործման վրա: PulseAudio-ն օգտագործվում է ձայնի ելքի համար: Այս դեպքում մեկուսացումը կարող է անջատվել, որն օգտագործվում է շատ հայտնի փաթեթների մշակողների կողմից՝ ֆայլային համակարգին և համակարգի բոլոր սարքերին լիարժեք մուտք ստանալու համար: Օրինակ՝ GIMP-ը, VSCodium-ը, PyCharm-ը, Octave-ը, Inkscape-ը, Audacity-ն և VLC-ն ունեն սահմանափակ մեկուսացման ռեժիմ, որը թույլ է տալիս լիարժեք մուտք գործել դեպի տնային գրացուցակ: Եթե ​​տնային գրացուցակ մուտք ունեցող փաթեթները վտանգված են, չնայած փաթեթի նկարագրության մեջ «sandboxed» պիտակի առկայությանը, հարձակվողը միայն պետք է փոխի ~/.bashrc ֆայլը՝ իր կոդը գործարկելու համար: Առանձին խնդիր է փաթեթների փոփոխությունների վերահսկումը և փաթեթ ստեղծողների նկատմամբ վստահությունը, որոնք հաճախ կապված չեն հիմնական նախագծի կամ բաշխումների հետ:

Source: opennet.ru

Добавить комментарий