कॉपी करने के अलावा / usr / bin / install क्या करता है?


11
  1. क्या make installएक Makefile समय कॉल से अधिकांश के साथ /usr/bin/install?

  2. /usr/bin/installसिर्फ संकलित फाइलों को कॉपी करने के अलावा क्या आवश्यक काम करता है /usr/bin/local?

  3. मैन पेज का कहना /usr/bin/installहै कि कॉपी फाइलों और सेट विशेषताओं को। सेट करने के लिए कौन सी विशेषताएँ इतनी महत्वपूर्ण हैं?

  4. क्या यह केवल अनुमति मोड और स्वामी / समूह सेट करता है, जो आवश्यक नहीं हैं?

"क्या मेकफाइल के साथ ज्यादातर समय कॉल / usr / bin / install स्थापित होता है?" नहीं, यह जो चाहे करता है। यह एक टारगेट है। क्या आपका प्रश्न निष्पादन योग्य स्थापित है? या बनाने के बारे में? यह स्पष्ट नहीं है।
फहीम मीठा

दोनों। @ फहीममिथ
टिम

ठीक है, ठीक है, 1 और 2 अलग-अलग प्रश्न हैं, और 1 का उत्तर, शायद नहीं है, लेकिन "अधिकांश समय" को परिभाषित करें। मैं वैसे भी 1 की बात का यकीन नहीं कर रहा हूँ।
फहीम मीठा

जवाबों:


18

install एक निर्देशिका में फ़ाइलों को कॉपी करने के अलावा कई सुविधाएँ प्रदान करता है।

  • -sविकल्प एक निष्पादन, बचत अंतरिक्ष से प्रतीक तालिका को हटा
  • -mविकल्प की अनुमति बिट्स सेट। डेवलपर की निर्देशिका में बैठी फाइलें उसके umask के अधीन बनाई गईं, जो दूसरों को उन्हें निष्पादित करने से रोक सकती हैं। install -m 755 file1 /usr/local/binयह सुनिश्चित करता है कि हर कोई फ़ाइल को निष्पादित कर सकता है, जो संभावित रूप से डेवलपर एक साझा निर्देशिका में फ़ाइल के लिए चाहता है।
  • -oऔर -gविकल्पों के मालिक और समूह की स्थापना की। साथ cp, मालिक और गंतव्य फ़ाइल के समूह uid करने के लिए सेट किया जाएगा और जो कोई भी भाग गया के gid cp, और साथ cp -p, मालिक और गंतव्य फ़ाइल के समूह का निर्माण निर्देशिका, न तो जो पराक्रम का में फ़ाइल के रूप में ही होगा डेवलपर क्या चाहता है। wallकार्यक्रम समूह में होने की जरूरत है tty, screenकार्यक्रम समूह होने की जरूरत है utmp, आदि
  • यह उन कमांडों की संख्या को कम करता है जिन्हें मेकफिल रेसिपी में डालने की आवश्यकता होती है। install -s -m 755 -o root -g bin file1 file2 lib/* $(DESTDIR)चार आदेशों की तुलना में अधिक संक्षिप्त है cp, strip, chmod, और chown

अंतिम बुलेट बिंदु की संभावना है कि installकमांड का आविष्कार क्यों किया गया था और कई मेकफाइल्स इसका उपयोग क्यों करते हैं।

Installहालांकि, हमेशा इस्तेमाल नहीं किया जाता है। मैंने देखा है cp -r lib $(DESTDIR)/libजब कॉपी करने के लिए सामान से भरा एक पूरा पेड़ होता है, और ./install.shअगर डेवलपर कस्टम स्क्रिप्ट का उपयोग करना पसंद करता है। कई संकुल install.shएक्स 11 के साथ आने वाले एक से व्युत्पन्न है, जो कि एक निर्दिष्ट तरीके से गंतव्य फ़ाइलों का नाम बदलने के लिए (रूपांतर) विकल्प का installसमर्थन करता है -t


3
  1. चूँकि मेकफ़ाइल में कौन सी कमांड का उपयोग किया जाता है, यह आवश्यक रूप से प्रोजेक्ट डेवलपर्स के लिए है, यहाँ एक निश्चित उत्तर देना मुश्किल है। आम तौर पर मैं यह कहूंगा कि install2 में उल्लिखित किसी भी संस्थापन प्रक्रिया के लिए मेकफाइल में कमांड का उपयोग करना अच्छा अभ्यास है , लेकिन फिर installPOSIX नहीं है इसलिए हमेशा इसका उपयोग करना सबसे पोर्टेबल दृष्टिकोण नहीं हो सकता है

    AFAIK अधिकांश उपकरणों का उपयोग स्वचालित रूप से मेकफाइल्स उत्पन्न करने के लिए किया जा सकता है automakeऔर cmakeउपयोग करेगा install

  2. आम तौर पर installफ़ाइलों की प्रतिलिपि बनाने और अनुमतियों / स्वामी / समूह को एक कमांड में सेट करने के लिए उपयोग किया जाता है जैसे आप कहते हैं। एक अन्य आम तौर पर इस्तेमाल किया जाने वाला फ़ंक्शन एक बाइनरी से अनावश्यक प्रतीकों (जैसे डिबगिंग प्रतीकों) को स्ट्रिप करना है जो अब उन्हें ज़रूरत नहीं है। यह भी एक SELinux संदर्भ जो उपयोगी हो सकता है के भीतर काम करने से पहले बैकअप बनाने और काम करने जैसी चीजों के लिए कुछ अतिरिक्त विकल्प हैं।

कौन सी अनुमतियाँ चुननी है यह फ़ाइल पर निर्भर करता है। ज्यादातर स्थापित फाइलें सभी के द्वारा पठनीय होती हैं, लेकिन केवल रूट द्वारा राइट करने योग्य (विचार यह है कि प्रोग्राम फाइलों को ऐसी जगह पर रखा जाए जहां यह सभी के लिए सुलभ हो लेकिन इससे छेड़छाड़ नहीं की जा सकती)। यह सब कुछ के साथ ऐसा नहीं है, अगर फ़ाइल में संवेदनशील डेटा है, तो किसी समूह या केवल रूट तक पहुंच को सीमित करना आम है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.