Snappy ile Nix ve Guix arasında nasıl bir ilişki var?


22

Bir karşılaştırma aradım ama buldum ve şu anda kendim yapacak kadar bilgili değilim.

Bunların hepsi işlemsel güncellemeler sağlar, ancak farklı sınırlandırma seviyeleri sunar.

  • Snappy kütüphanelerde, ikili bağımlılıkların çoklu versiyonlarını sağlamak için statik olarak derlenir. Sağlanan (ve gerekli?) Hizmetleri meta veri olarak ilan eder. Paket tek bir görüntü olarak sağlanır?
  • Nix, ikili bağımlılıkların çoklu versiyonlarını sağlamak için dinamik bağlantı ile ilgilenir mi? Sağlanan ve ihtiyaç duyulan hizmetleri meta veri olarak ilan eder. Paket, bağımlılıklarla ilgili bir depo aracılığıyla sağlanır.
  • Guix Nix gibidir, ancak GNU entegrasyonuna sahiptir.

Nix ve Guix arasındaki daha derinlemesine bir karşılaştırma , detaylı olarak çalışmadığım Sander van der Burg tarafından verildi . Canonical'daki birisinin mevcut çözümlerin bir analizini yaptığını tahmin ediyorum. CoreOS anlatıldığı gibi görüntülere dayanan başka dağıtım sistemleri de var.

Peki, Snappy Ubuntu'nun Nix ve Guix ile ilişkisi nedir? Büyük farklar nelerdir?


1
Yani bizden okumak istemediklerinizi okumamızı istiyorsunuz ??? "Nix ve Guix arasındaki daha derin bir karşılaştırma," ... "okumadığım Sander van der Burg tarafından verildi, Snappy Ubuntu'nun Nix ve Guix ile ilişkisi nedir?
don.joey,

Burada soruyordum, çünkü bence bu topluluktan biri çoktan düşünmüş ya da bulamadığım bir makaleyi biliyor. Bugün sadece Snappy'ye rastladım, hakkında bir şeyler okudum, ancak bu olgun paket yöneticileri arasında nasıl konumlandığına karar verecek kadar Snappy hakkında yeterince bilgili olduğumu düşünmüyorum. Snappy makaleleri bu sistemlerden hiç bahsetmiyor ve benzer problemlerle ilgilenen diğer özgür yazılımlar için sessiz kalmanın üzücü olduğunu düşünüyorum. Ayrıca bağlantılı blog makalesi hızlıca ad vermez ve hızlıca dahil olan bir kişi tarafından değil.
yük taşıma

1
Yeterince adil. Aşağı oy geri alındı.
don.joey

Snappy kütüphanelerde statik olarak derlenmez. Kütüphaneleri ikili sisteminizle aynı klasörde saklamanıza izin verir, böylece sistem kütüphanelerine bağımlı olmanıza gerek kalmaz, ancak sürüm bağımsız bir pakete ihtiyacınız yoksa sistem kütüphanelerine güvenmenizi sağlar. Bu nedenle Snappy, kararlı bir LTS sürümüne sahip olmanın avantajlarını ortadan kaldırmaz. Sadece her şeyi daha da kolaylaştırıyor.
Jo-Erlend Schinstad

Yanıtlar:


29

Son zamanlarda kendim bir değerlendirme yaptım. Aslında bir Nix / NixOS katılımcısıyım ve dağıtım teknolojisiyle ilgilenen eski bir araştırmacıyım.

Kendimi olabildiğince gerçeklere sokmaya çalıştım, ancak tamamen tarafsız kalmam mümkün değil. Bulgularımı özetlemek için:

  • Her iki yaklaşım da paketleri yalıtılmış olarak saklar . Snappy uygulamaları ve çerçeveleri aşağıdaki ad kurallarını kullanarak klasörlerde depolar: /app/name/version.vendoroysa Nix kullanır /nix/store/hash-name-version.

    Nix'in adlandırma kuralı daha güçlü, çünkü tüm inşa zamanı bağımlılıklarından türetilmiş karma önekleri kullanıyor . Nix ile bir paketin herhangi bir çeşidi arasında kolayca ayrım yapabilir ve bunları yan yana depolayabilirsiniz. Herhangi bir değişiklik (örn. Farklı derleme prosedürü, kütüphane yükseltme, derleyici yükseltme), yeni bir hash oluşturur;

  • Bir paket bağımlılıklarından bulmasını sağlamak için, Nix onları bağlayan statik olarak (örn değiştirerek bir yürütülebilir için RPATHELF ikili) veya uygun ortam değişkenlerini ayarlamak komut (örneğin bunları sararak CLASSPATH, PYTHONPATH, PERL5LIBvb.)

    Snappy oluşturan konteyner gibi yürütülebilir ortak FHS yerlerde onların bağımlılıklarını bulabileceği, /libve/bin

    Bununla birlikte, Nix Snappy'nin konteyner yaklaşımını da destekliyor, ancak bu sadece çok nadir durumlarda kullanılıyor. Kapsayıcı bir yaklaşım kullanan en belirgin Nix paketi NixOS'ta Steam'dir çünkü Steam, birbiriyle çelişen özelliklere sahip bir dağıtım aracıdır.

  • Snappy Ubuntu Core, temel sistemi yükseltmek (ve geri almak) için "A / B" bölümleme şemasını kullanır. O sırada yalnızca sınırlı sayıda sürümü (tipik olarak iki) destekler.

    Buna karşılık, NixOS (Nix tabanlı Linux dağıtımı) oluşturan sıra Nix deposunda Nix paketlerinin dışarı taban sistemi ve çok daha güçlüdür. Henüz toplanmamış olan herhangi bir yapılandırmaya geri dönebilirsiniz. Ayrıca, nesiller arasında benzer sistem paketleri paylaşılabilir.

  • Her iki araç da ayrıcalıklı olmayan kullanıcı kurulumlarını destekler . Ancak, Snappy tüm dosyaları kullanıcının giriş dizininde saklar. İki kullanıcı aynı paketi yüklerse, sisteme iki kez yüklenirler.

    Buna karşın, Nix paketleri aynı zamanda sıradan kullanıcıların paketleri merkezi Nix mağazasına kurmasına izin verir, böylece aynı paketler kullanıcılar arasında paylaşılabilir . Kısmen adlandırma kuralı nedeniyle (karma kullanarak) bu güvenli bir şekilde yapılabilir.

  • Snappy , kullanıma hazır paketlerin çalışma dışı davranışlarını kısıtlarken , Nix'in yapmaması

  • Snappy için fazla yardımcı olmak görünmüyor inşa kaynak kodundan paketleri. Ancak Nix, ihtiyaç duyulduğunda insanların kolayca ve otomatik olarak tüm çalışma zamanı bağımlılıklarını (derleyiciler, oluşturma araçları, kütüphaneler vb.) Kurmalarını sağlayan bir DSL'ye sahiptir.

  • Snappy modülerleşmeyi ve yeniden kullanımı pek desteklemez . Örnek paketlerde, tüm kütüphane bağımlılıkları statik olarak daha fazla disk alanı ve RAM tüketen paketlenmiştir. Ayrıca, belgeler çerçeveler dışında herhangi bir kolaylık sağlamaz. Ancak, çerçeveler dokümantasyona göre yeniden kullanım için uygun değildir.

    Nix'in modüler hale getirme paketleri ve bağımlılıkları güvenli bir şekilde yönetme bazı önemli özellikleridir.

Tam blog yayını burada bulunabilir: http://sandervanderburg.blogspot.com/2015/04/an-evaluation-and-comparison-of-snappy.html

Umarım okumayı ilginç bulursunuz ve belki de üzerinde düşünmeye değer bulduğunuz bazı şeyler vardır.


3
Cevabınız% 100 doğru olsa da, eğer bu bağlantı taşınırsa, değiştirilirse, bir başkasına birleştirilirse veya ana sitenin kaybolması durumunda% 100 işe yaramaz hale gelebilir ... :-( Bu nedenle, lütfen cevabınızı düzenleyin ve ilgili mesajı kopyalayın. cevabınıza linkten birkaç adım, böylece cevabınızı bu sitenin kullanım ömrünün% 100'ü için garanti edin! ;-) Bağlantıyı her zaman materyalinin kaynağı olarak cevabın altında bırakabilirsin ...
Fabby

3
Tamam, cevabımı değiştirdim. Umarım bu yardımcı olur!
Sander van der Burg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.