إصدار نظام الحزمة المستقلة Flatpak 1.14.0

تم نشر فرع مستقر جديد لمجموعة أدوات Flatpak 1.14 ، والذي يوفر نظامًا لبناء حزم قائمة بذاتها غير مرتبطة بتوزيعات Linux محددة وتعمل في حاوية خاصة تعزل التطبيق عن باقي النظام. يتم توفير الدعم لتشغيل حزم Flatpak لكل من Arch Linux و CentOS و Debian و Fedora و Gentoo و Mageia و Linux Mint و Alt Linux و Ubuntu. يتم تضمين الحزم مع Flatpak في مستودع Fedora ويتم الاحتفاظ بها في مدير تطبيقات جنوم الأصلي.

الابتكارات الرئيسية في فرع Flatpak 1.14:

  • تكوين دليل للملفات في الحالة (.local / state) وضبط متغير بيئة التشغيل XDG_STATE_HOME الذي يشير إلى هذا الدليل.
  • تمت إضافة فحوصات شرطية للنموذج "have-kernel-module-name" لتحديد وجود وحدات kernel (التناظرية العالمية للفحص المقترح سابقًا have-intel-gpu ، بدلاً من التعبير "have-kernel-module-i915 "يمكن استخدامها الآن).
  • تم تنفيذ الأمر "flatpak document-unexport --doc-id = ...".
  • توفير تصدير بيانات تعريف Appstream لاستخدامها في البيئة الرئيسية.
  • تمت إضافة قواعد إكمال أمر flatpak لقشرة الأسماك
  • الوصول المسموح به للشبكة إلى خدمات X11 و PulseAudio (إذا تمت إضافة الإعدادات المناسبة).
  • تمت إعادة تسمية الفرع الرئيسي في مستودع Git من "رئيسي" إلى "رئيسي" ، حيث تم اعتبار كلمة "رئيسي" غير صحيحة سياسياً مؤخرًا.
  • قدمت إعادة كتابة نصوص بدء التشغيل في حالة إعادة تسمية التطبيق.
  • تمت إضافة خيارات "--include-sdk" و "--include-debug" لتثبيت الأمر لتثبيت ملفات SDK وتصحيح الأخطاء.
  • تمت إضافة دعم المعلمة "DeploySideloadCollectionID" إلى ملفات flatpakref و flatpakrepo ، عند التعيين ، سيتم تعيين معرف المجموعة أثناء إضافة المستودع البعيد ، وليس بعد تحميل البيانات الوصفية.
  • يُسمح بإنشاء بيئات آلية رمل متداخلة للمعالجات في الجلسات بأسماء منفصلة MPRIS (مواصفات واجهة مشغل الوسائط عن بُعد).
  • تعرض الأدوات المساعدة لسطر الأوامر معلومات حول استخدام ملحقات وقت التشغيل المتقادمة.
  • يقوم أمر إلغاء التثبيت بتنفيذ طلب تأكيد قبل إزالة ملحقات وقت التشغيل أو وقت التشغيل التي لا تزال قيد الاستخدام.
  • تمت إضافة دعم لخيار "--socket = gpg-agent" لأوامر مثل "flatpak run".
  • تم إصلاح ثغرة أمنية في libostree والتي من المحتمل أن تسمح للمستخدم بحذف الملفات التعسفية على النظام من خلال معالجة معالج مساعد نظام flatpak (إرسال طلب حذف باسم فرع منسق بشكل خاص). تحدث المشكلة فقط في الإصدارات القديمة من 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 ، وما إلى ذلك) كبيئات تشغيل نموذجية قابلة للتوصيل. يتمثل الاختلاف الرئيسي بين Flatpak و Snap في أن Snap يستخدم مكونات بيئة النظام الرئيسية والعزل بناءً على تصفية مكالمات النظام ، بينما تنشئ Flatpak حاوية منفصلة عن النظام وتعمل مع مجموعات وقت تشغيل كبيرة ، مما يوفر حزمًا نموذجية بدلاً من الحزم كاعتماديات . بيئات النظام (على سبيل المثال ، جميع المكتبات المطلوبة لتشغيل برامج جنوم أو كيدي).

بالإضافة إلى بيئة النظام النموذجية (وقت التشغيل) المثبتة من خلال مستودع خاص ، يتم توفير التبعيات الإضافية (الحزمة) المطلوبة لكي يعمل التطبيق. في المجموع ، يشكل وقت التشغيل والحزمة حشو الحاوية ، بينما يتم تثبيت وقت التشغيل بشكل منفصل وربطه بعدة حاويات في وقت واحد ، مما يجعل من الممكن تجنب تكرار ملفات النظام الشائعة للحاويات. يمكن أن يحتوي نظام واحد على عدة أوقات تشغيل مختلفة مثبتة (جنوم ، كيدي) أو عدة إصدارات من نفس وقت التشغيل (جنوم 3.40 ، جنوم 3.42). تستخدم الحاوية التي تحتوي على تطبيق كتبعية الارتباط بوقت تشغيل محدد فقط ، دون مراعاة الحزم الفردية التي تشكل وقت التشغيل. يتم حزم جميع العناصر المفقودة مباشرة مع التطبيق. عندما يتم تشكيل الحاوية ، يتم تثبيت محتويات وقت التشغيل كقسم / usr ، ويتم تثبيت الحزمة في دليل / app.

يتم تشكيل تعبئة وقت التشغيل وحاويات التطبيق باستخدام تقنية OSTree ، حيث يتم تحديث الصورة بشكل ذري من وحدة تخزين تشبه Git ، مما يسمح لك بتطبيق طرق التحكم في الإصدار على مكونات التوزيع (على سبيل المثال ، يمكنك التراجع عن النظام بسرعة إلى الحالة السابقة). يتم ترجمة حزم RPM إلى مستودع OSTree باستخدام طبقة rpm-ostree خاصة. لا يتم دعم التثبيت والتحديث المنفصلين للحزم داخل بيئة العمل ، ولا يتم تحديث النظام على مستوى المكونات الفردية ، ولكن بشكل عام ، مما يؤدي إلى تغيير حالته ذريًا. يتم توفير الأدوات لتطبيق التحديثات بشكل تدريجي ، مما يلغي الحاجة إلى استبدال الصورة تمامًا مع كل تحديث.

البيئة المعزولة التي تم إنشاؤها مستقلة تمامًا عن التوزيع المستخدم ، ومع إعدادات الحزمة المناسبة ، لا يمكنها الوصول إلى ملفات وعمليات المستخدم أو النظام الرئيسي ، ولا يمكنها الوصول مباشرة إلى المعدات ، باستثناء الإخراج عبر DRI ، والوصول إلى النظام الفرعي للشبكة. يتم تنفيذ تنظيم إخراج وإدخال الرسومات باستخدام بروتوكول Wayland أو من خلال إعادة توجيه مقبس X11. يتم إنشاء التفاعل مع البيئة الخارجية على أساس نظام المراسلة DBus وواجهة برمجة التطبيقات الخاصة بواجهة برمجة التطبيقات.

للعزل ، يتم استخدام طبقة Bubblewrap وتقنيات المحاكاة الافتراضية لحاوية Linux التقليدية القائمة على استخدام مجموعات cgroups ومساحات الأسماء (مساحات الأسماء) و Seccomp و SELinux. يستخدم PulseAudio لإخراج الصوت. في هذه الحالة ، يمكن تعطيل العزل ، والذي يستخدمه مطورو العديد من الحزم الشائعة للوصول الكامل إلى FS وجميع الأجهزة في النظام. على سبيل المثال ، تأتي حزم GIMP و VSCodium و PyCharm و Octave و Inkscape و Audacity و VLC مع وضع عزل محدود يتيح الوصول الكامل إلى الدليل الرئيسي. إذا تم اختراق الحزم التي لها حق الوصول إلى الدليل الرئيسي ، على الرغم من وجود تسمية "وضع الحماية" في وصف الحزمة ، فإن المهاجم يحتاج فقط إلى تغيير الملف ~ / .bashrc لتنفيذ التعليمات البرمجية الخاصة به. هناك مشكلة منفصلة تتمثل في التحكم في التغييرات التي يتم إجراؤها على الحزم والثقة في منشئي الحزم ، الذين لا يرتبطون غالبًا بالمشروع الرئيسي أو التوزيعات.

المصدر: opennet.ru

إضافة تعليق