การเปิดตัวระบบแพ็คเกจแบบแยกส่วน Flatpak 1.6.0

ที่ตีพิมพ์ สาขาใหม่ของชุดเครื่องมือที่มั่นคง แฟลตแพค 1.6ซึ่งจัดให้มีระบบสำหรับการสร้างแพ็คเกจที่มีในตัวเองซึ่งไม่ได้เชื่อมโยงกับการแจกแจง Linux เฉพาะและทำงานในคอนเทนเนอร์พิเศษที่แยกแอปพลิเคชันออกจากส่วนที่เหลือของระบบ รองรับการรันแพ็คเกจ Flatpak สำหรับ Arch Linux CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint และ Ubuntu แพ็คเกจ Flatpak รวมอยู่ในที่เก็บ Fedora และได้รับการสนับสนุนจากตัวจัดการแอปพลิเคชัน GNOME ดั้งเดิม

สำคัญ นวัตกรรม ในสาขา Flatpak 1.6:

  • В พอร์ทัล API มีการเพิ่มเมธอด CreateUpdateMonitor ซึ่งช่วยให้แอปพลิเคชันสามารถตรวจสอบลักษณะที่ปรากฏของการอัปเดตและขอติดตั้งการอัปเดตที่อัปเดตได้
    หากต้องการปฏิเสธการอนุญาตสำหรับแอปพลิเคชันในการติดตั้งการอัปเดตโดยอิสระ คุณสามารถใช้คำสั่ง “flatpak ตั้งค่าการอนุญาต flatpak อัปเดต $APPID no” (หากคุณระบุ “ask” แทน “no” กล่องโต้ตอบจะปรากฏขึ้นในแต่ละครั้งเพื่อยืนยัน อัปเดต);


  • เพื่อให้การสร้างตัวจัดการง่ายขึ้น จึงมีการเสนอไลบรารี
    libportal ซึ่งทำให้สามารถประมวลผลเหตุการณ์ได้โดยไม่ต้องใช้ Portal API โดยตรงและแยกวิเคราะห์สัญญาณที่มาจาก D-Bus
    Libportal มอบเลเยอร์อะซิงโครนัสอย่างง่ายสำหรับส่วนใหญ่ "พอร์ทัล";

  • เพิ่มการอนุญาตใหม่ "--socket=cups" เพื่อให้เข้าถึงเซิร์ฟเวอร์การพิมพ์ CUPS ได้โดยตรง
  • เปลี่ยนโปรโตคอลและ API สำหรับการจัดการการรับรองความถูกต้อง เพิ่มตัวตรวจสอบสิทธิ์สำหรับ OCI (Open Container Initiative) ดำเนินการรองรับการติดตั้งตัวตรวจสอบสิทธิ์อัตโนมัติจากที่เก็บ flatpak ภายนอก มีการเพิ่มตัวจัดการการเรียกกลับใน FlatpakTransaction เพื่อใช้การตรวจสอบการเข้าสู่ระบบและรหัสผ่าน ซึ่งคล้ายกับวิธีการตรวจสอบสิทธิ์ขั้นพื้นฐานของ HTTP
  • เพิ่มการรองรับแอปพลิเคชันและระบบที่ได้รับการป้องกันซึ่งต้องมีการรับรองความถูกต้องเมื่อบูต
  • ชั้นบับเบิ้ลแรปที่ใช้เป็นฉนวนได้รับการอัปเดตเพื่อเผยแพร่ 0.4.0;
  • เพิ่มการรองรับทางเลือกสำหรับการควบคุมโดยผู้ปกครองผ่านแอปพลิเคชันห้องสมุด เนื้อหาลิบมัลซึ่งช่วยให้คุณสามารถจำกัดการเข้าถึงเนื้อหาบางประเภทได้
  • ขณะนี้ส่วนขยายได้รับการติดตั้งก่อนแอปพลิเคชัน ช่วยให้คุณสามารถรับแอปพลิเคชันที่ใช้งานได้ทันทีหลังจากการติดตั้งเสร็จสมบูรณ์
  • การจัดการกับไฟล์ชั่วคราวได้รับการแก้ไขใหม่ ซึ่งปรับปรุงประสิทธิภาพเมื่อไม่มีพื้นที่ว่างในดิสก์
  • เพื่อดำเนินการคำสั่ง "flatpak เข้า“ไม่จำเป็นต้องใช้ sudo อีกต่อไป
  • เพิ่มความสามารถในการเปิดใช้สภาพแวดล้อมที่แยกส่วนแบบซ้อนกัน (แซนด์บ็อกซ์ย่อย) สำหรับกระบวนการย่อยในพอร์ทัลแล้ว
  • เพิ่มคำสั่งใหม่ "ชุดสิทธิ์ flatpak" และ "สิทธิ์ลบ" เพื่อควบคุมการตั้งค่าสิทธิ์
  • เพิ่มตัวเลือก “การติดตั้ง flatpak --or-update” ซึ่งดำเนินการอัปเดตหากติดตั้งแอปพลิเคชันไว้แล้ว
  • เพิ่มคำสั่ง “flatpak mask” เพื่อแก้ไขเวอร์ชันและห้ามการติดตั้งการอัปเดต
  • สำหรับรูปภาพในรูปแบบ OCI (Open Container Initiative) มีการเพิ่มการรองรับสำหรับป้ายกำกับการผูก การสร้างประวัติการเปลี่ยนแปลงในรูปภาพ และการเปิดใช้งานประเภท mime ของนักเทียบท่า นอกเหนือจากประเภท OCI mime
  • เพิ่มคีย์ภาษาเริ่มต้นในการตั้งค่าเพื่อกำหนดรายการภาษาที่ใช้นอกเหนือจากรายการระบบ

เราขอเตือนคุณว่า Flatpak ช่วยให้นักพัฒนาแอปพลิเคชันสามารถกระจายโปรแกรมที่ไม่รวมอยู่ในที่เก็บการแจกจ่ายมาตรฐานได้ง่ายขึ้นโดย การตระเตรียม คอนเทนเนอร์สากลหนึ่งคอนเทนเนอร์โดยไม่ต้องสร้างชุดประกอบแยกกันสำหรับการแจกจ่ายแต่ละครั้ง สำหรับผู้ใช้ที่คำนึงถึงความปลอดภัย Flatpak ช่วยให้คุณสามารถเรียกใช้แอปพลิเคชันที่น่าสงสัยในคอนเทนเนอร์ โดยให้การเข้าถึงเฉพาะฟังก์ชันเครือข่ายและไฟล์ผู้ใช้ที่เกี่ยวข้องกับแอปพลิเคชันเท่านั้น สำหรับผู้ใช้ที่สนใจผลิตภัณฑ์ใหม่ Flatpak ช่วยให้คุณสามารถติดตั้งการทดสอบล่าสุดและแอพพลิเคชั่นที่เสถียรโดยไม่จำเป็นต้องทำการเปลี่ยนแปลงระบบ เช่นปัจจุบันแพ็คเกจ Flatpak มีอยู่แล้ว จะไป สำหรับ LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio ฯลฯ

เพื่อลดขนาดของแพ็คเกจ จะรวมเฉพาะการพึ่งพาเฉพาะแอปพลิเคชัน และระบบพื้นฐานและไลบรารีกราฟิก (ไลบรารี Gtk+, Qt, GNOME และ KDE ฯลฯ) ได้รับการออกแบบให้เป็นสภาพแวดล้อมรันไทม์มาตรฐานของปลั๊กอิน ข้อแตกต่างที่สำคัญระหว่าง Flatpak และ Snap คือ Snap ใช้ส่วนประกอบของสภาพแวดล้อมระบบหลักและการแยกตามการกรองการเรียกของระบบ ในขณะที่ Flatpak สร้างคอนเทนเนอร์ที่แยกจากระบบและทำงานกับชุดรันไทม์ขนาดใหญ่ โดยไม่ให้แพ็คเกจเป็นการพึ่งพา แต่เป็นมาตรฐาน สภาพแวดล้อมของระบบ (เช่น ไลบรารีทั้งหมดที่จำเป็นสำหรับการทำงานของโปรแกรม GNOME หรือ KDE)

นอกเหนือจากสภาพแวดล้อมของระบบมาตรฐาน (รันไทม์) ที่ติดตั้งผ่านระบบพิเศษแล้ว ที่เก็บมีการจัดหาการอ้างอิงเพิ่มเติม (บันเดิล) ที่จำเป็นสำหรับแอปพลิเคชันในการทำงาน โดยรวมแล้ว รันไทม์และบันเดิลจะสร้างการเติมคอนเทนเนอร์ แม้ว่ารันไทม์จะถูกติดตั้งแยกกันและเชื่อมโยงกับคอนเทนเนอร์หลายอันในคราวเดียว ซึ่งช่วยให้คุณหลีกเลี่ยงการทำซ้ำไฟล์ระบบที่เหมือนกันกับคอนเทนเนอร์ได้ ระบบหนึ่งสามารถติดตั้งรันไทม์ที่แตกต่างกันได้หลายแบบ (GNOME, KDE) หรือรันไทม์เดียวกันหลายเวอร์ชัน (GNOME 3.26, GNOME 3.28) คอนเทนเนอร์ที่มีแอปพลิเคชันเป็นแบบพึ่งพาจะใช้การเชื่อมโยงเฉพาะกับรันไทม์ที่ระบุเท่านั้น โดยไม่คำนึงถึงแต่ละแพ็คเกจที่ประกอบเป็นรันไทม์ องค์ประกอบที่ขาดหายไปทั้งหมดจะถูกรวมเข้ากับแอปพลิเคชันโดยตรง เมื่อคอนเทนเนอร์ถูกสร้างขึ้น เนื้อหารันไทม์จะถูกเมาท์เป็นพาร์ติชัน /usr และบันเดิลจะถูกเมาท์ในไดเร็กทอรี /app

การเติมรันไทม์และคอนเทนเนอร์แอปพลิเคชันเกิดขึ้นโดยใช้เทคโนโลยี OSTreeซึ่งอิมเมจได้รับการอัปเดตแบบอะตอมมิกจากพื้นที่เก็บข้อมูลที่คล้ายกับ Git ซึ่งช่วยให้คุณใช้วิธีการควบคุมเวอร์ชันกับส่วนประกอบของการแจกจ่าย (เช่น คุณสามารถย้อนกลับระบบไปสู่สถานะก่อนหน้าได้อย่างรวดเร็ว) แพ็คเกจ RPM ได้รับการแปลเป็นที่เก็บ OSTree โดยใช้เลเยอร์พิเศษ รอบต่อนาที-otree. ไม่รองรับการติดตั้งและอัปเดตแพ็คเกจแยกต่างหากภายในสภาพแวดล้อมการทำงาน ระบบได้รับการอัปเดตไม่ได้อยู่ที่ระดับของแต่ละส่วนประกอบ แต่โดยรวมแล้วจะเปลี่ยนสถานะแบบอะตอมมิก มีเครื่องมือเพื่อใช้การอัปเดตแบบค่อยเป็นค่อยไป โดยไม่จำเป็นต้องแทนที่รูปภาพทั้งหมดด้วยการอัพเดตแต่ละครั้ง

สภาพแวดล้อมแบบแยกที่สร้างขึ้นนั้นไม่ขึ้นอยู่กับการกระจายที่ใช้โดยสิ้นเชิง และด้วยการตั้งค่าแพ็คเกจที่เหมาะสม จะไม่สามารถเข้าถึงไฟล์และกระบวนการของผู้ใช้หรือระบบหลัก ไม่สามารถเข้าถึงอุปกรณ์ได้โดยตรง ยกเว้นเอาต์พุตผ่าน DRI และ ระบบย่อยเครือข่าย เอาท์พุตกราฟิกและการจัดระเบียบอินพุต ดำเนินการ ใช้โปรโตคอล Wayland หรือผ่านการส่งต่อซ็อกเก็ต X11 การโต้ตอบกับสภาพแวดล้อมภายนอกจะขึ้นอยู่กับระบบการส่งข้อความ DBus และพอร์ทัล API พิเศษ สำหรับเป็นฉนวน เคย อินเตอร์เลเยอร์ แผ่นกันกระแทก และเทคโนโลยีการจำลองเสมือนคอนเทนเนอร์ Linux แบบดั้งเดิมโดยอิงจากการใช้ cgroups, เนมสเปซ, Seccomp และ SELinux PulseAudio ใช้เพื่อส่งสัญญาณเสียง

ที่มา: opennet.ru

เพิ่มความคิดเห็น