Distri - distribusi untuk menguji teknologi manajemen paket cepat

Michael Stapelberg, penulis window manager ubin i3wm dan mantan pengembang aktif Debian (mengelola sekitar 170 paket), berkembang distribusi eksperimental distribusi dan manajer paket dengan nama yang sama. Proyek ini diposisikan sebagai eksplorasi cara-cara yang mungkin untuk meningkatkan kinerja sistem manajemen paket dan mewujudkan beberapa ide baru untuk membangun distribusi. Kode manajer paket ditulis dalam Go dan didistribusikan oleh di bawah lisensi BSD.

Fitur utama dari format paket distribusi ini adalah paket dikirimkan dalam bentuk gambar SquashFS, bukan arsip tar terkompresi. Menggunakan SquashFS, mirip dengan format AppImage dan Snap, memungkinkan Anda untuk "memasang" sebuah paket tanpa harus membongkarnya, sehingga menghemat ruang disk, memungkinkan perubahan atom, dan membuat konten paket dapat diakses secara instan. Pada saat yang sama, paket distri, seperti dalam format β€œdeb” klasik, hanya berisi komponen individual yang dihubungkan oleh dependensi dengan paket lain (perpustakaan tidak diduplikasi dalam paket, tetapi diinstal sebagai dependensi). Dengan kata lain, distri mencoba menggabungkan struktur paket granular dari distribusi klasik seperti Debian dengan metode penyampaian aplikasi dalam bentuk container terpasang.

Setiap paket di distri dipasang ke direktorinya sendiri dalam mode read-only (misalnya, paket dengan zsh tersedia sebagai β€œ/ro/zsh-amd64-5.6.2-3”), yang memiliki efek positif pada keamanan dan melindungi terhadap perubahan yang tidak disengaja atau berbahaya. Untuk membentuk hierarki direktori layanan, seperti /usr/bin, /usr/share dan /usr/lib, modul FUSE khusus digunakan, yang menggabungkan konten semua gambar SquashFS yang diinstal menjadi satu (misalnya, /ro /direktori share menyediakan akses untuk berbagi subdirektori dari semua paket).

Paket di distrik pada dasarnya terkirim dari penangan yang dipanggil selama instalasi (tidak ada kait atau pemicu), dan versi paket yang berbeda dapat hidup berdampingan satu sama lain, sehingga instalasi paket secara paralel menjadi mungkin. Struktur yang diusulkan membatasi kinerja manajer paket hanya pada throughput jaringan yang digunakan untuk mengunduh paket. Instalasi atau pembaruan paket sebenarnya dilakukan secara atom dan tidak memerlukan duplikasi konten.

Konflik saat menginstal paket dihilangkan karena setiap paket dikaitkan dengan direktorinya sendiri dan sistem mengizinkan adanya versi berbeda dari satu paket (isi direktori dengan revisi paket yang lebih baru disertakan dalam direktori gabungan). Membangun paket juga sangat cepat dan tidak memerlukan instalasi paket di lingkungan build yang terpisah (representasi dependensi yang diperlukan dari direktori /ro dibuat di lingkungan build).

Didukung perintah manajemen paket yang khas, seperti "instal distri" dan "pembaruan distri", dan alih-alih perintah informasi, Anda dapat menggunakan utilitas "ls" standar (misalnya, untuk melihat paket yang diinstal, cukup menampilkan daftar direktori di hierarki β€œ/ro”, dan untuk mengetahui paket mana file tersebut disertakan, lihat ke mana tautan dari file ini mengarah).

Kit distribusi prototipe yang diusulkan untuk eksperimen mencakup tentang 1700 paket dan siap gambar instalasi dengan installer, cocok untuk instalasi sebagai OS utama dan untuk dijalankan di QEMU, Docker, Google Cloud dan VirtualBox. Ini mendukung booting dari partisi disk terenkripsi dan serangkaian aplikasi standar untuk membuat desktop berdasarkan window manager i3 (Google Chrome ditawarkan sebagai browser). Asalkan perangkat lengkap untuk merakit distribusi, menyiapkan dan menghasilkan paket, mendistribusikan paket melalui mirror, dll.

Sumber: opennet.ru

Tambah komentar