Distri - pengedaran untuk menguji teknologi pengurusan pakej pantas

Michael Stapelberg, pengarang pengurus tingkap berjubin i3wm dan bekas pembangun Debian aktif (mengekalkan kira-kira 170 pakej), berkembang pengedaran eksperimen distri dan pengurus pakej dengan nama yang sama. Projek ini diletakkan sebagai penerokaan cara yang mungkin untuk meningkatkan prestasi sistem pengurusan pakej dan merangkumi beberapa idea baharu untuk pengedaran bangunan. Kod pengurus pakej ditulis dalam Go and diedarkan oleh di bawah lesen BSD.

Ciri utama format pakej pengedaran ialah pakej dihantar dalam bentuk imej SquashFS, bukannya arkib tar termampat. Menggunakan SquashFS, serupa dengan format AppImage dan Snap, membolehkan anda "melekapkan" pakej tanpa perlu membongkarnya, yang menjimatkan ruang cakera, membenarkan perubahan atom dan menjadikan kandungan pakej itu boleh diakses serta-merta. Pada masa yang sama, pakej distri, seperti dalam format "deb" klasik, mengandungi hanya komponen individu yang dipautkan oleh kebergantungan dengan pakej lain (perpustakaan tidak diduplikasi dalam pakej, tetapi dipasang sebagai kebergantungan). Dalam erti kata lain, distri cuba menggabungkan struktur pakej berbutir bagi pengedaran klasik seperti Debian dengan kaedah penyampaian aplikasi dalam bentuk bekas yang dipasang.

Setiap pakej di distri dipasang ke dalam direktorinya sendiri dalam mod baca sahaja (contohnya, pakej dengan zsh tersedia sebagai "/ro/zsh-amd64-5.6.2-3"), yang mempunyai kesan positif terhadap keselamatan dan melindungi daripada perubahan yang tidak disengajakan atau berniat jahat. Untuk membentuk hierarki direktori perkhidmatan, seperti /usr/bin, /usr/share dan /usr/lib, modul FUSE khas digunakan, yang menggabungkan kandungan semua imej SquashFS yang dipasang menjadi satu keseluruhan (contohnya, / direktori ro/share menyediakan akses untuk berkongsi subdirektori daripada semua pakej).

Pakej di distri secara asasnya dihantar daripada pengendali dipanggil semasa pemasangan (tiada cangkuk atau pencetus), dan versi pakej yang berbeza boleh wujud bersama antara satu sama lain, jadi pemasangan selari pakej menjadi mungkin. Reka bentuk yang dicadangkan mengehadkan prestasi pengurus pakej hanya kepada pemprosesan rangkaian di mana pakej dimuat turun. Pemasangan atau kemas kini pakej sebenar dilakukan secara atom dan tidak memerlukan duplikasi kandungan.

Konflik semasa memasang pakej dihapuskan kerana setiap pakej dikaitkan dengan direktorinya sendiri dan sistem membenarkan kehadiran versi berbeza bagi satu pakej (kandungan direktori dengan semakan pakej yang lebih terkini disertakan dalam direktori kesatuan). Pakej membina juga sangat pantas dan tidak memerlukan pemasangan pakej dalam persekitaran binaan yang berasingan (perwakilan kebergantungan yang diperlukan daripada direktori /ro dicipta dalam persekitaran binaan).

Disokong arahan pengurusan pakej biasa, seperti "pemasangan distri" dan "kemas kini distri", dan bukannya arahan maklumat, anda boleh menggunakan utiliti "ls" standard (contohnya, untuk melihat pakej yang dipasang, hanya paparkan senarai direktori dalam " /ro", dan untuk mengetahui pakej mana fail disertakan, lihat ke mana pautan dari fail ini membawanya).

Kit pengedaran prototaip yang dicadangkan untuk eksperimen termasuk kira-kira 1700 pakej dan bersedia imej pemasangan dengan pemasang, sesuai untuk pemasangan sebagai OS utama dan untuk dijalankan dalam QEMU, Docker, Google Cloud dan VirtualBox. Ia menyokong but daripada partition cakera yang disulitkan dan satu set aplikasi standard untuk mencipta desktop berdasarkan pengurus tetingkap i3 (Google Chrome ditawarkan sebagai penyemak imbas). Dengan syarat kit alat lengkap untuk memasang pengedaran, menyediakan dan menjana pakej, mengedarkan pakej melalui cermin, dsb.

Sumber: opennet.ru

Tambah komen