डेबियन और फेडोरा निर्भरता समस्या को दूर करने की कोशिश कर रहे हैं

लिनक्स वितरण बढ़ती निर्भरता की समस्या का सामना करते हैं परियोजनाओं का, यद्यपि पायथन, पर्ल और रूबी कोड के लिए निर्भरता की संख्या रखी गई है उचित सीमाओं के भीतर, जावास्क्रिप्ट प्रोजेक्ट बहुत छोटे पुस्तकालयों में विभाजित होने का अभ्यास करते हैं, अक्सर एक साधारण कार्य करते हैं।

NPM रिपॉजिटरी में पहले से ही एक मिलियन से अधिक पैकेज हैं और विशिष्ट अनुप्रयोग सैकड़ों निर्भरताओं से जुड़ा हुआ, जो बदले में अपनी स्वयं की निर्भरता रखते हैं, जिससे लिनक्स वितरण पर जावास्क्रिप्ट अनुप्रयोगों के साथ पारंपरिक पैकेजों को बनाए रखना और वितरित करना मुश्किल हो जाता है।

जावास्क्रिप्ट लाइब्रेरी निर्भरता के तंग हस्तक्षेप के कारण, वितरण में ऐसे पुस्तकालयों के साथ किसी भी पैकेज को अपडेट करना यह अन्य पैकेजों को तोड़ सकता है।

संस्करण बाइंडिंग समस्या को बढ़ाती है: एक पुस्तकालय को स्थिर चलाने के लिए एक निर्भरता के एक संस्करण की आवश्यकता हो सकती है, और दूसरे को दूसरे की आवश्यकता हो सकती है।

कई परियोजनाओं को काम करने के लिए पुस्तकालयों के नवीनतम संस्करणों की आवश्यकता होती है, यह हमेशा वितरण की स्थिरता आवश्यकताओं को पूरा नहीं करता है (फ्रेमवर्क के नवीनतम संस्करणों का उपयोग करके Node.js पारिस्थितिकी तंत्र में निरंतर विकास का अभ्यास किया जाता है, और वितरण को कई वर्षों के लिए समर्थन की आवश्यकता होती है)।

अकेले वितरण में पैकेज संस्करणों को ठीक करने का प्रयास पुराने संस्करणों में वृद्धि करने के लिए नेतृत्व उस रिपॉजिटरी में जिसे सालों से अपडेट नहीं किया गया है। एक पैकेज के लिए रखरखाव में व्यवधान कई अन्य पैकेजों पर प्रतिकूल प्रभाव डालता है और इससे भी अधिक समस्याएं पैदा होती हैं।

इसके अलावा, एलपार निर्भरता तथ्य यह है कि कई पुस्तकालयों के लिए नेतृत्व Node.js सिस्टम से अनइंस्टॉल करना असंभव हो जाता हैजो, बदले में, आपको अन्य Node.js कार्यक्रमों की स्थापना रद्द करने से रोकता है।

इसे संबोधित करने के लिए, फेडोरा परियोजना ने हाल ही में Node.js- आधारित परियोजनाओं में प्रयुक्त पुस्तकालयों के साथ अलग-अलग पैकेजों के डिफ़ॉल्ट गठन को रोकने के लिए एक योजना को मंजूरी दी।

उन्होंने फैसला किया, फेडोरा 34 के साथ, एक इंटरप्रेटर, हेडर, प्राथमिक पुस्तकालयों, बायनेरिज़ और बुनियादी पैकेज प्रबंधन उपकरण (एनपीएम, यार्न) के साथ केवल नोड पैकेज के लिए आधार पैकेज की आपूर्ति करने के लिए।

फेडोरा रिपॉजिटरी अनुप्रयोगों में जो Node.js का उपयोग करते हैं, अलग-अलग पैकेज में उपयोग किए गए पुस्तकालयों को विभाजित और अलग किए बिना, एक पैकेज में सभी मौजूदा निर्भरता को एम्बेड करने की अनुमति है।

एम्बेडिंग पुस्तकालयों से छोटे पैकेज अव्यवस्था से छुटकारा मिलेगा, पैकेज रखरखाव को सरल बनाना (पहले, अनुरक्षक ने अधिक पैकेज की समीक्षा और कार्यक्रम के साथ मुख्य पैकेज की तुलना में पुस्तकालयों के साथ सैकड़ों पैकेजों का परीक्षण करने में खर्च किया), बुनियादी ढांचे को संघर्ष से बचाएं पुस्तकालयों और पुस्तकालय संस्करणों से जुड़ने के मुद्दों को हल करने के लिए (अनुरक्षण में पैकेज में परीक्षण किए गए और उत्पादन-परीक्षण किए गए संस्करण शामिल होंगे)।

एकीकरण के नकारात्मक पक्ष में सुधार लाने की प्रक्रिया की जटिलता होगी पुस्तकालयों में कमजोरियों के लिए, जिसमें सभी पैकेजों के रख-रखाव के समन्वित कार्य की आवश्यकता होगी जिसमें कमजोर पुस्तकालय शामिल हैं। एक खतरा है कि एक पैकेज एक अंतर्निहित लाइब्रेरी को अपडेट करने के लिए भूल जाएगा और पैकेज किसी का ध्यान नहीं जाएगा।

के डेवलपर्स डेबियन भी एक समान पैकेज निर्भरता एकीकरण मॉडल पर स्विच करने पर चर्चा कर रहे हैं। Node.js के अतिरिक्त, चर्चा Kubernetes प्लेटफ़ॉर्म के लिए संकुल के निर्माण और PHP और गो भाषाओं में परियोजनाओं को छूती है, जिसके लिए छोटी निर्भरता में विभाजित करने की प्रवृत्ति होती है। अभी तक कोई निर्णय नहीं किया गया है, लेकिन यह आशा है कि समय के साथ समस्या केवल बदतर हो जाएगी और जल्द ही या बाद में परियोजना कुछ करने के लिए मजबूर हो जाएगी।

Gvm (Greenbone Vulnerability Management) सुरक्षा स्कैनर के लिए gsa (ग्रीनबोन सिक्योरिटी असिस्टेंट) वेब इंटरफ़ेस को उन समस्याओं के उदाहरण के रूप में उद्धृत किया जाता है जो पैकेज मेंटेनर्स को होती हैं।

Gsa के नए संस्करणों के साथ gsa का डेबियन-शिप संस्करण असंगत निकला, लेकिन वर्तमान संस्करण में gsa को अद्यतन करना संभव नहीं था क्योंकि इसमें महत्वपूर्ण परिवर्तन हैं और आवश्यक Node.js पुस्तकालयों को डाउनलोड करने के लिए npm का उपयोग करता है।

अनुरोधित पुस्तकालय बहुत अधिक हैं और उन्हें बनाए रखने के लिए किसी के लिए डेबियन में नए पैकेज के निर्माण की आवश्यकता होती है, क्योंकि डेबियन नियम निर्माण प्रक्रिया के दौरान बाहरी घटकों को लोड करने से रोकते हैं।

Fuente: https://lwn.net/


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   qtkk कहा

    ECMAscript में चौखटे और पुस्तकालयों का यह विखंडन हाथ से निकल गया है।
    ब्यूएन आर्टिकुलो।