Debian ve Fedora bağımlılıklar sorununu çözmeye çalışıyor

Linux dağıtımları artan bağımlılık sorunuyla karşı karşıyadır projelerin Python, Perl ve Ruby kodu için bağımlılıkların sayısı tutulur Makul sınırlar içinde, JavaScript projeleri çok küçük kitaplıklara bölünerek pratik yapar ve genellikle basit bir işlevi yerine getirir.

NPM deposunda zaten bir milyondan fazla paket var ve tipik uygulamalar yüzlerce bağımlılığa bağlantıBu da kendi bağımlılıklarına sahip olduğundan, Linux dağıtımlarında JavaScript uygulamalarıyla geleneksel paketlerin bakımını ve dağıtımını zorlaştırır.

JavaScript kitaplık bağımlılıklarının sıkı iç içe geçmesi nedeniyle, bir dağıtımdaki bu tür kitaplıklarla herhangi bir paketi güncellemek diğer paketleri kırabilir.

Sürüm bağlamaları sorunu daha da kötüleştirir: bir kitaplık, bir bağımlılık sürümünün kararlı çalışmasını gerektirebilirken, bir diğeri başka bir bağımlılık sürümünü gerektirebilir.

Birçok proje, kitaplıkların en son sürümlerinin çalışmasını gerektirir, dağıtımın kararlılık gereksinimlerini her zaman karşılamayan (çerçevelerin en son sürümleri kullanılarak Node.js ekosisteminde sürekli geliştirme uygulanır ve dağıtım birkaç yıl boyunca desteğe ihtiyaç duyar).

Yalnızca dağıtımdaki paket sürümlerini düzeltme girişimleri eski sürümlerde artışa yol açar yıllardır güncellenmemiş olan depoda. Bir paket için bakım kesintisi, diğer birçok paketi olumsuz etkiler ve daha da fazla sorun yaratır.

Ayrıca, lçapraz bağımlılıklar birçok kütüphanenin Node.js'nin sistemden kaldırılması imkansız hale geliyorbu da diğer Node.js programlarını kaldırmanızı engeller.

Fedora projesi, bu sorunu çözmek için kısa süre önce, Node.js tabanlı projelerde kullanılan kitaplıklarla ayrı paketlerin varsayılan oluşumunu durdurma planını onayladı.

Fedora 34 ile başlayarak, bir yorumlayıcı, başlıklar, birincil kitaplıklar, ikili dosyalar ve temel paket yönetimi araçları (NPM, iplik) içeren Node.js için yalnızca temel paketler sağlamaya karar verdi.

Node.js kullanan Fedora depo uygulamalarında, Ayrı paketlerde kullanılan kitaplıkları bölmeden ve ayırmadan, mevcut tüm bağımlılıkların bir pakete gömülmesine izin verilir.

Kitaplıkları gömmek, küçük paket karmaşasından kurtulacak, paket bakımını basitleştirecek (daha önce bakımcı, programdaki ana pakete kıyasla kitaplıklarla birlikte yüzlerce paketi gözden geçirmek ve test etmek için daha fazla zaman harcıyordu), altyapıyı kitaplık çatışmalarından kurtaracak ve bağlantıyla ilgili sorunları çözecektir. kitaplık sürümleri (bakımcılar, pakete test edilmiş ve üretimde test edilmiş sürümleri dahil edecektir).

Entegrasyonun dezavantajı, düzeltme getirme sürecinin karmaşıklığı olacaktır. zafiyetten etkilenen kitaplığı içeren tüm paketlerin bakımcılarının koordineli çalışmasını gerektiren kitaplıklardaki güvenlik açıkları. Bir paketin savunmasız bir yerleşik kitaplığı güncellemeyi unutması ve paketin fark edilmemesi tehlikesi vardır.

Geliştiricileri Debian da benzer bir paket bağımlılığı entegrasyon modeline geçmeyi tartışıyor. Node.js'ye ek olarak tartışma, Kubernetes platformu için paketlerin oluşturulmasına ve küçük bağımlılıklara bölünme eğiliminin olduğu PHP ve Go dillerindeki projelere değiniyor. Henüz bir karar verilmedi, ancak zamanla sorunun daha da kötüye gideceği ve er ya da geç projenin bir şeyler yapmaya zorlanacağı umuluyor.

Gvm (Greenbone Vulnerability Management) güvenlik tarayıcısı için gsa (Greenbone Security Assistant) web arayüzü, paket bakımcılarının sahip olduğu sorunların bir örneği olarak gösterilmektedir.

Debian tarafından gönderilen gsa sürümünün gvm'nin daha yeni sürümleriyle uyumsuz olduğu ortaya çıktı, ancak önemli değişiklikler içerdiğinden ve gerekli Node.js kitaplıklarını indirmek için npm kullandığından gsa'yı mevcut sürüme güncellemek mümkün olmadı.

Debian kuralları, derleme işlemi sırasında harici bileşenlerin yüklenmesini yasakladığından, talep edilen kitaplıklar çok fazla ve Debian'da yeni paketlerin oluşturulmasını gerektiriyor.

kaynak: https://lwn.net/


Makalenin içeriği şu ilkelerimize uygundur editoryal etik. Bir hata bildirmek için tıklayın burada.

Bir yorum bırak seninkini

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak.

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   qtkk dijo

    ECMAscript'teki çerçevelerin ve kitaplıkların bu parçalanması kontrolden çıktı.
    İyi makale

bool(doğru)