'इंस्टॉल' कमांड का उद्देश्य क्या है?


49

मैंने installबहुत सारे मेकफाइल्स में कमांड का उपयोग किया है, और इसका अस्तित्व और उपयोग भ्रमित करने वाले हैं। मैनपाट से, यह cpकम सुविधाओं के साथ एक नॉकऑफ की तरह लगता है, लेकिन मुझे लगता है कि इसका उपयोग तब तक नहीं किया जाएगा जब तक कि इसका कुछ फायदा न हो cp। क्या बात है?

जवाबों:


50

installन केवल फ़ाइलों की प्रतिलिपि बनाता है, बल्कि इसके स्वामित्व और अनुमतियां भी बदलता है और वैकल्पिक रूप से डिबगिंग प्रतीकों को निष्पादक से हटाता है। यह cpसाथ chown, chmodऔर जोड़ती है strip। यह एक सुविधाजनक उच्च-स्तरीय उपकरण है जो प्राथमिक कार्यों के एक सामान्य अनुक्रम को पूरा करता है।

निष्पादनयोग्य स्थापित करने के लिए installओवर का एक फायदा cpयह है कि यदि लक्ष्य पहले से मौजूद है, तो यह लक्ष्य फ़ाइल को हटा देता है और एक नया बनाता है। यह एक्सेस कंट्रोल लिस्ट और क्षमताओं जैसे किसी भी मौजूदा गुण से छुटकारा दिलाता है, जिसे एक अपसाइड और एक डाउनसाइड के रूप में देखा जा सकता है। निष्पादनयोग्य को अद्यतन करते समय, यदि इस निष्पादन योग्य के चलने के उदाहरण हैं, तो वे अप्रभावित रहते हैं। इसके विपरीत, cpअगर कोई एक है तो फ़ाइल को अपडेट करें। अधिकांश यूनिक्स वेरिएंट पर, यह त्रुटि EBUSY the के साथ विफल हो जाती है यदि लक्ष्य एक चल निष्पादन योग्य है; कुछ पर यह लक्ष्य को दुर्घटनाग्रस्त कर सकता है क्योंकि यह कोड अनुभागों को गतिशील रूप से लोड करता है और फ़ाइल को संशोधित करने के कारण निरर्थक कोड लोड होता है।

installएक BSD कमांड है ( जो 1980 के दशक की शुरुआत में यानी 4.2BSD में जोड़ी गई थी)। इसे POSIX द्वारा नहीं अपनाया गया है।

Busy "पाठ फ़ाइल व्यस्त"। इस संदर्भ में, "पाठ फ़ाइल" का अर्थ है "बाइनरी निष्पादन योग्य फ़ाइल", अस्पष्ट ऐतिहासिक कारणों के लिए


महत्वपूर्ण नोट (जहां तक ​​मैं इसे समझ सकता हूं) यह है कि यह rmसाथ में भी जोड़ती है cp। इसका मतलब है कि यह उन फ़ाइलों को अधिलेखित कर सकता है जो rmपहले ( ) को अनलिंक करके उपयोग में हैं । cpअकेले एक त्रुटि देगा।
code_fodder

10

यह फ़ाइल की प्रतिलिपि बनाने या फ़ाइल की निर्देशिका के स्वामित्व और अनुमतियों में हेरफेर करने का एक मानकीकृत तरीका प्रदान करता है।


9
यह परमाणु नहीं है। परमाणु का अर्थ है कि अन्य प्रक्रियाओं के लिए कोई मध्यवर्ती राज्य दिखाई नहीं देते हैं। installएक कॉपी के बाद chown और chmod, सभी अलग-अलग syscalls, और rename-in-place (coreutils 8.13 GNU संस्करण के रूप में नहीं है) का उपयोग नहीं करता है। यदि आप मानते हैं कि यह सब परमाणु रूप से होता है, तो आपको एक बुरा आश्चर्य हो सकता है।

3

installकमांड के साथ हम इच्छा अनुमतियों के साथ फाइल कॉपी कर सकते हैं

उदाहरण जो ldap सेट करते समय ज्यादातर उपयोग करते हैं

install -o ldap -g ldap /etc/openldap/DB_CONFIG_EXAMPLE  /var/lib/ldap/DB_CONFIG

यह हमें करने से बचाता है chown ldap. /var/lib/ldap/DB_CONFIG, यदि आपने उपयोग किया है cpतो आपको chownइस परिदृश्य में भी इसकी आवश्यकता है


1

इसके लिए मैन पेज देखें install:

$ man install

अंश

SYNOPSIS
       install [OPTION]... [-T] SOURCE DEST
       install [OPTION]... SOURCE... DIRECTORY
       install [OPTION]... -t DIRECTORY SOURCE...
       install [OPTION]... -d DIRECTORY...


DESCRIPTION
       This  install  program  copies  files  (often just compiled) into 
       destination locations you choose.  If you want to download and
       install a ready-to-use package on a GNU/Linux system, you should instead 
       be using a package manager like yum(1) or apt-get(1).

       In the first three forms, copy SOURCE to DEST or multiple SOURCE(s) to 
       the existing DIRECTORY, while  setting  permission  modes and 
       owner/group.  In the 4th form, create all components of the given 
       DIRECTORY(ies).

       Mandatory arguments to long options are mandatory for short options too.

अन्य उपयोगी चीजें जैसे कि विशिष्ट स्वामित्व, अनुमतियों के साथ स्थापित करना और मूल फाइलों को संरक्षित करना टाइमस्टैम्प के उपयोग के माध्यम से भी प्राप्त किया जा सकता है install

   -g, --group=GROUP
          set group ownership, instead of process' current group

   -m, --mode=MODE
          set permission mode (as in chmod), instead of rwxr-xr-x

   -o, --owner=OWNER
          set ownership (super-user only)

   -p, --preserve-timestamps
          apply access/modification times of SOURCE files to corresponding 
          destination files

संदर्भ


4
जैसा कि मैंने प्रश्न में कहा था, मैंने मुख्य पृष्ठ पढ़ा; इसने cp की कार्यक्षमता में जो इजाफा किया, उसने मुझे इस बात से रूबरू कराया।
अज़र्निक

एसएलएम ने उन विशिष्ट कार्यक्षमता को उजागर किया जो दोनों को अलग करता है: आप गंतव्य फ़ाइल के लिए विशिष्ट स्वामी, समूह और मोड सेट कर सकते हैं, साथ installही मौजूदा अनुमतियों को संरक्षित करने के बजायcp
जोशुआ मिलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.