में बनाम रनटाइम निर्भरता बनाम मैं सिर्फ निक्स के साथ पकड़ने के लिए शुरू कर रहा हूं, इसलिए अगर मैं दस्तावेज़ों में अपने प्रश्न का उत्तर चूक गया तो क्षमा चाहता हूं।निक्स
मैं पुस्तकालयों और निष्पादन योग्य न्यूनतम सेट के साथ एक सुरक्षित उत्पादन मशीन स्थापित करने के लिए निक्स का उपयोग करना चाहता हूं। मैं नहीं चाहता कि कोई कंपाइलर या अन्य निर्माण उपकरण मौजूद हों क्योंकि ये सुरक्षा जोखिम हो सकते हैं।
जब मैं कुछ संकुल स्थापित करता हूं, ऐसा लगता है कि वे केवल रनटाइम निर्भरताओं के न्यूनतम सेट पर निर्भर करते हैं। उदाहरण के लिए यदि मैं apache-tomcat-8.0.23
इंस्टॉल करता हूं तो मुझे जावा रनटाइम (जेआरई) और पूर्व-निर्मित जेएआर फाइलें शामिल हैं जो टोमकैट शामिल हैं।
दूसरी तरफ, कुछ पैकेजों में निर्भरता के रूप में एक पूर्ण निर्माण टूलचेन शामिल है। एक और जावा आधारित उदाहरण लें तो जब मैं spark-1.4.0
स्थापित निक्स जावा डेवलपमेंट किट (JDK) जो एक संकलक शामिल नीचे खींचती है, और यह भी खींचती Maven उपकरण का निर्माण आदि
तो, मेरे सवालों का इस प्रकार हैं:
- क्या निक्स पैकेज बिल्ड और रनटाइम निर्भरताओं के बीच कोई भेद करते हैं?
- कुछ पैकेज बिल्ड टूल्स पर निर्भर क्यों दिखते हैं जबकि अन्य केवल रनटाइम की आवश्यकता होती है? क्या यह सब नीचे है कि पैकेज लेखक ने एप्लिकेशन को कैसे लपेट लिया?
- यदि किसी पैकेज में बिल्ड निर्भरताएं हैं जो मैं नहीं चाहता हूं, तो क्या कोई ऐसा ऑपरेटर है, जो ऑपरेटर के रूप में, उसी एप्लिकेशन के लिए अपना वैकल्पिक पैकेजिंग डिज़ाइन को छोड़कर इसके बारे में कर सकता है?
बहुत धन्यवाद।
इस विस्तृत और व्यापक जवाब के लिए धन्यवाद। –
आप "जेनरेट आउटपुट स्कैन करके स्वचालित रूप से" का उल्लेख करते हैं, वास्तव में यह कैसे करता है? क्या यह बाइनरी के अंदर 'exec' के माध्यम से गतिशील रूप से निष्पादित पथों के साथ काम करता है? या शायद एक जेनरेट की गई कॉन्फ़िगरेशन फ़ाइल किसी अन्य पैकेज की बाइनरी के पथ को संग्रहीत कर रही है? – CMCDragonkai
@CMCDragonkai, हाँ ऐसा लगता है कि निक्स वास्तव में व्युत्पन्न हैश के लिए बाइनरी स्कैन करता है। दुर्भाग्यवश, मैं वास्तविक कोड नहीं ढूंढ पा रहा हूं, लेकिन यहां कुछ विवरण हैं https://lethalman.blogspot.ru/2014/08/nix-pill-9-automatic-runtime.html – cvb