Distri - hızlı paket yönetimi teknolojilerini test etmeye yönelik bir dağıtım

Michael Stapelberg, i3wm kiremitli pencere yöneticisinin yazarı ve eski aktif Debian geliştiricisi (yaklaşık 170 paket barındırıyordu), geliştirir deneysel dağıtım dağıtım ve aynı isimde bir paket yöneticisi. Proje, paket yönetim sistemlerinin performansını artırmanın olası yollarının araştırılması olarak konumlandırılıyor ve bina dağıtımları için bazı yeni fikirleri bünyesinde barındırıyor. Paket yöneticisi kodu Go'da yazılmıştır ve tarafından dağıtıldı BSD lisansı altında.

Dağıtımın paket formatının önemli bir özelliği, paketin sıkıştırılmış tar arşivleri yerine SquashFS görüntüleri biçiminde teslim edilmesidir. AppImage ve Snap formatlarına benzer şekilde SquashFS'yi kullanmak, bir paketi paketini açmaya gerek kalmadan "bağlamanıza" olanak tanır, bu da disk alanından tasarruf sağlar, atomik değişikliklere izin verir ve paketin içeriğine anında erişilmesini sağlar. Aynı zamanda, dağıtım paketleri, klasik "deb" formatında olduğu gibi, yalnızca diğer paketlere bağımlılıklarla bağlanan bireysel bileşenleri içerir (kütüphaneler paketlerde kopyalanmaz, bağımlılık olarak kurulur). Başka bir deyişle dağıtım, Debian gibi klasik dağıtımların parçalı paket yapısını, uygulamaları monte edilmiş konteynerler biçiminde sunma yöntemleriyle birleştirmeye çalışır.

Dağıtımdaki her paket salt okunur modda kendi dizinine bağlanır (örneğin, zsh'li paket “/ro/zsh-amd64-5.6.2-3” olarak mevcuttur), bu da güvenlik ve güvenlik üzerinde olumlu bir etkiye sahiptir. kazara veya kötü niyetli değişikliklere karşı koruma sağlar. /usr/bin, /usr/share ve /usr/lib gibi bir hizmet dizinleri hiyerarşisi oluşturmak için, kurulu tüm SquashFS görüntülerinin içeriğini tek bir bütün halinde birleştiren özel bir FUSE modülü kullanılır (örneğin, / ro/share dizini tüm paketlerdeki paylaşım alt dizinlerine erişim sağlar).

paketler temelde dağıtımda teslim edilmiş kurulum sırasında çağrılan işleyicilerden (kanca veya tetikleyici yok) ve bir paketin farklı sürümleri birbiriyle bir arada bulunabilir, böylece paketlerin paralel kurulumu mümkün olur. Önerilen yapı, paket yöneticisinin performansını yalnızca paketlerin indirildiği ağ verimiyle sınırlandırır. Paketin asıl kurulumu veya güncellenmesi atomik olarak gerçekleştirilir ve içeriğin çoğaltılmasını gerektirmez.

Her paket kendi dizini ile ilişkilendirildiğinden ve sistem bir paketin farklı sürümlerinin varlığına izin verdiğinden (paketin daha yeni bir revizyonuna sahip dizinin içeriği birleşim dizinlerinde yer aldığından) paketlerin kurulumu sırasındaki çakışmalar ortadan kaldırılır. Paket oluşturmak da çok hızlıdır ve paketlerin ayrı bir yapı ortamında kurulmasını gerektirmez (/ro dizinindeki gerekli bağımlılıkların temsilleri yapı ortamında oluşturulur).

Desteklenen "distri install" ve "distri update" gibi tipik paket yönetimi komutları ve bilgi komutları yerine standart "ls" yardımcı programını kullanabilirsiniz (örneğin, yüklü paketleri görüntülemek için "dizinlerin listesini" görüntülemek yeterlidir). /ro” hiyerarşisine bakın ve dosyanın hangi pakete dahil olduğunu bulmak için bu dosyadaki bağlantının nereye gittiğine bakın).

Deney için önerilen prototip dağıtım kiti yaklaşık olarak şunları içerir: 1700 paket ve hazır kurulum görselleri Hem ana işletim sistemi olarak kuruluma hem de QEMU, Docker, Google Cloud ve VirtualBox'ta çalışmaya uygun bir yükleyici ile. Şifrelenmiş bir disk bölümünden önyüklemeyi ve i3 pencere yöneticisini temel alan bir masaüstü oluşturmak için bir dizi standart uygulamayı destekler (Google Chrome bir tarayıcı olarak sunulur). Tedarik edilen Bir dağıtım oluşturmak, paketleri hazırlamak ve oluşturmak, paketleri aynalar aracılığıyla dağıtmak vb. için eksiksiz bir araç seti.

Kaynak: opennet.ru

Yorum ekle