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

Linux dağıtımları artan bağımlılık sorunuyla karşı karşıya projelerin olmasına rağmen Python, Perl ve Ruby koduna yönelik bağımlılıkların sayısı aynı kalıyor Makul sınırlar dahilinde, JavaScript projeleri genellikle basit bir işlevi gerçekleştirerek çok küçük kitaplıklara bölme alıştırması yapar.

NPM deposunda halihazırda bir milyondan fazla paket var ve tipik uygulamalar yüzlerce bağımlılığa bağlanırlar, bunların da kendi bağımlılıkları vardır, bu da Linux dağıtımlarında JavaScript uygulamalarıyla geleneksel paketlerin bakımını ve dağıtımını zorlaştırır.

JavaScript kitaplığı bağımlılıklarının sıkı bir şekilde iç içe geçmesi nedeniyle, herhangi bir paketin bir dağıtımdaki JavaScript kitaplıklarıyla güncellenmesi diğer paketleri bozabilir.

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

Çoğu proje, kitaplıkların en son sürümlerinin çalışmasını gerektirir. dağıtımın kararlılık gereksinimlerini her zaman karşılamayanlar (Node.js ekosisteminde çerçevelerin en son sürümleri kullanılarak sürekli geliştirme uygulanmaktadır ve dağıtımın birkaç yıl boyunca desteğe ihtiyacı vardır).

Yalnızca dağıtımdaki paket sürümlerini düzeltmeye çalışır eski sürümlerin artmasına neden oluyor Yıllardır güncellenmeyen depoda. Bir pakette bakımın aksatılması diğer birçok paketi olumsuz etkiler ve daha da fazla soruna neden olur.

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

Bu duruma çözüm bulmak için Fedora projesi yakın zamanda Node.js tabanlı projelerde kullanılan kitaplıklarla ayrı paketlerin varsayılan olarak oluşturulmasını durdurmaya yönelik bir planı onayladı.

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

Fedora deposundaki Node.js kullanan uygulamalarda, Kullanılan kütüphaneleri ayrı paketlere bölmeden ve ayırmadan, mevcut tüm bağımlılıkların tek bir pakete yerleştirilmesine izin verilir.

Kitaplıkları gömmek, küçük paketlerin dağınıklığından kurtulmanıza, paket bakımını basitleştirmenize (önceden bakımcı, programla birlikte ana pakete kıyasla yüzlerce paketi kitaplıklarla incelemeye ve test etmeye daha fazla zaman harcıyordu), altyapıyı çakışmalardan kurtarmanıza olanak tanıyacak, kitaplıklar ve kitaplık sürümlerine bağlanmayla ilgili sorunları çözer (bakıcılar, test edilmiş ve üretim açısından test edilmiş sürümleri pakete dahil edecektir).

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

Geliştiricileri Debian aynı zamanda bağımlılıkları paketlere entegre eden benzer bir modele geçmeyi de tartışıyor. Tartışmada Node.js'nin yanı sıra Kubernetes platformu için paketlerin oluşturulmasına ve küçük bağımlılıklara bölünme eğilimi olan PHP ve Go dillerindeki projelere de değiniliyor. Henüz bir karar verilmedi ancak zamanla sorunun daha da kötüleşmesi ve er ya da geç projenin bir şeyler yapmak zorunda kalması bekleniyor.

gvm (Greenbone Vulnerability Management) güvenlik tarayıcısı için gsa (Greenbone Security Assistant) web arayüzü, paket bakımcılarının yaşadığı sorunlara örnek olarak gösteriliyor.

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ği ve gerekli Node.js kitaplıklarını indirmek için npm kullandığı için gsa'yı mevcut sürüme yükseltmek mümkün olmadı.

İstenen kütüphaneler çok fazla ve birinin bakımı için Debian'da yeni paketler oluşturulması gerekiyor, çünkü Debian kuralları derleme süreci sırasında harici bileşenlerin yüklenmesini yasaklıyor.

kaynak: https://lwn.net/


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  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 parçalanması kontrolden çıktı.
    İyi makale