Π Π΅Π»ΠΈΠ· систСмы самодостаточных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² 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-имя» для опрСдСлСния наличия ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра (ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ have-intel-gpu, вмСсто ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ «have-kernel-module-i915»).
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «flatpak document-unexport —doc-id=…».
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ экспорт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Appstream для использования Π² основном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° автодополнСния ΠΊΠΎΠΌΠ°Π½Π΄ flatpak для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Fish
  • Π Π°Π·Ρ€Π΅ΡˆΡ‘Π½ сСтСвой доступ ΠΊ сСрвисам X11 ΠΈ PulseAudio (ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… настроСк).
  • Основная Π²Π΅Ρ‚ΠΊΠ° Π² Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° с «master» Π½Π° «main», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ слово «master» считаСтся послСднСС врСмя Π½Π΅ΠΏΠΎΠ»ΠΈΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ скриптов запуска Π² случаС пСрСимСнования прилоТСния.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ install Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ «—include-sdk» ΠΈ «—include-debug» для установки SDK ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² debuginfo.
  • Π’ Ρ„Π°ΠΉΠ»Ρ‹ flatpakref ΠΈ flatpakrepo Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° «DeploySideloadCollectionID», ΠΏΡ€ΠΈ установкС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ выставлСн Π²ΠΎ врСмя добавлСния ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория, Π° Π½Π΅ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ созданиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… sandbox-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² сСансах с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ MPRIS (Media Player Remote Interfacing Specification).
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки обСспСчСн Π²Ρ‹Π²ΠΎΠ΄ свСдСний ΠΎΠ± использовании ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… runtime-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ uninstall Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ запрос подтвСрТдСния ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ runtime ΠΈΠ»ΠΈ runtime-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ «flatpak run» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΡ†ΠΈΠΈ «—socket=gpg-agent».
  • Π’ libostree устранСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² систСмС Ρ‡Π΅Ρ€Π΅Π· манипуляции с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ flatpak-system-helper (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ запроса Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² старых вСрсиях Flatpak ΠΈ libostree, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π΄ΠΎ 2018 Π³ΠΎΠ΄Π° (< 0.10.2), ΠΈ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ выпуски.

Напомним, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Flatpak Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ распространСниС своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π΅ входящих Π² ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ дистрибутивов Π·Π° счСт ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π±Π΅Π· формирования ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сборок для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ дистрибутива. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, заботящимся ΠΎ бСзопасности, Flatpak позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ сомнСниС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, прСдоставив доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ сСтСвым функциям ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, связанным с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌΡΡ Π½ΠΎΠ²ΠΈΠ½ΠΊΠ°ΠΌΠΈ, Flatpak позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ самыС свСТиС тСстовыС ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ выпуски ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· нСобходимости внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² систСму. НапримСр, Flatpak-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ для LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio ΠΈ Ρ‚.Π΄.

Для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ лишь спСцифичныС для прилоТСния зависимости, Π° Π±Π°Π·ΠΎΠ²Ρ‹Π΅ систСмныС ΠΈ графичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (GTK, Qt, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GNOME ΠΈ KDE ΠΈ Ρ‚.ΠΏ.) ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… runtime-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Flatpak ΠΎΡ‚ Snap Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Snap ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ окруТСния основной систСмы ΠΈ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ Π½Π° основС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Flatpak создаёт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚ систСмы ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ runtime-Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ, прСдоставляя Π² качСствС зависимостСй Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π° Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ систСмныС окруТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ GNOME ΠΈΠ»ΠΈ KDE).

Помимо Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠ³ΠΎ систСмного окруТСния (runtime), устанавливаСмого Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ зависимости (bundle), Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π’ суммС runtime ΠΈ bundle ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π½Π°Ρ‡ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ runtime устанавливаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ привязываСтся сразу ΠΊ нСскольким ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· дублирования ΠΎΠ±Ρ‰ΠΈΡ… для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² систСмных Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ ΠΎΠ΄Π½ΠΎΠΉ систСмС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСно нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… runtime (GNOME, KDE) ΠΈΠ»ΠΈ нСсколько вСрсий ΠΎΠ΄Π½ΠΎΠ³ΠΎ runtime (GNOME 3.40, GNOME 3.42). ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² качСствС зависимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ привязку Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ runtime, Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит runtime. ВсС Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ элСмСнты ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСпосрСдствСнно вмСстС с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° содСрТимоС runtime монтируСтся ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π» /usr, Π° bundle монтируСтся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /app.

Начинка runtime ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ формируСтся с использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OSTree, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Ρ€Π°Π· Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ обновляСтся ΠΈΠ· Git-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ вСрсионного контроля ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ дистрибутива (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ систСму ΠΊ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ). RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ OSTree ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ прослойки rpm-ostree. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ установка ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ окруТСния Π½Π΅ поддСрТиваСтся, систСма обновляСтся Π½Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ мСняя своё состояниС. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ срСдства для ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ примСнСния ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΈΠ·Π±Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ нСобходимости ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ±Ρ€Π°Π·Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.

Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависимо ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ дистрибутива ΠΈ ΠΏΡ€ΠΈ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… настройках ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ процСссам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ основной систСмы, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· DRI, ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ сСтСвой подсистСмС. Π’Ρ‹Π²ΠΎΠ΄ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ организация Π²Π²ΠΎΠ΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Wayland ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· проброс сокСта X11. ВзаимодСйствиС с внСшнСй срСдой построСно Π½Π° основС систСмы ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями DBus ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ API Portals.

Для изоляции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прослойка Bubblewrap ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ для Linux Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, основанныС Π½Π° использовании cgroups, пространств ΠΈΠΌΡ‘Π½ (namespaces), Seccomp ΠΈ SELinux. Для Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π²ΡƒΠΊΠ° примСняСтся PulseAudio. ΠŸΡ€ΠΈ этом изоляция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… популярных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для получСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ доступа ΠΊ Π€Π‘ ΠΈ всСм устройствам Π² систСмС. НапримСр, с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ изоляции, ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ΠΈ VLC. Π’ случаС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с доступом ΠΊ Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, нСсмотря Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² описании ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΠ΅Ρ‚ΠΊΠΈ «sandboxed», Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ для выполнСния своСго ΠΊΠΎΠ΄Π° достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ~/.bashrc. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ вопросом являСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° внСсСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ ΠΊ сборщикам ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Π½Π΅ связаны с основным ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ дистрибутивами.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ