लिनक्स C: \ Program Files के समतुल्य है?


64

मैं समझता हूं कि विंडोज के साथ-साथ लिनक्स और यूनिक्स में भी एक प्रोग्राम | एप्लीकेशन | सॉफ्टवेयर किसी भी डायरेक्टरी में इंस्टॉल किया जा सकता है। इसके अलावा अगर पैकेज वितरण की पैकेजिंग प्रणाली का उपयोग करके स्थापित किया जाता है, तो यह फाइलों को सही स्थान पर रखेगा।

लेकिन कई बार, सॉफ़्टवेयर इंस्टॉलेशन फ़ाइलों को रखने के लिए एक पथ के लिए संकेत देता है। लिनक्स डिस्ट्रो के मामले में यह डिफ़ॉल्ट स्थान ( C:\Program Filesया C:\progra~1समतुल्य) कहां है? क्या यह विभिन्न वितरणों के लिए अलग है? यदि हाँ, तो यह कहाँ के लिए होगा RHEL, Suseऔर Ubuntu?

जवाबों:


60

लिनक्स प्रलेखन परियोजना एक है लिनक्स फाइल सिस्टम पदानुक्रम का वर्णन है, जहां वे विभिन्न फ़ोल्डर और उनके (आंशिक रूप से ऐतिहासिक) अर्थ समझाने।

जैसा कि xenoterracide ने पहले ही बताया /binऔर /optमानक निर्देशिकाएं हैं जिनकी तुलना विंडोज पर "प्रोग्राम फाइल्स" से की जा सकती है।

/binइसमें कई उपयोगी कमांड होते हैं जो सिस्टम प्रशासक और गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं दोनों के लिए उपयोग होते हैं। यह आमतौर पर की तरह गोले शामिल bash, csh, आदि .... और आमतौर पर जैसे आदेशों का इस्तेमाल किया cp, mv, rm, cat, ls

( टीएलडीपी से उद्धृत )

/optसभी सॉफ़्टवेयर और ऐड-ऑन पैकेज के लिए आरक्षित है जो डिफ़ॉल्ट स्थापना का हिस्सा नहीं हैं। उदाहरण के लिए, StarOffice, Kylix, Netscape Communicator और WordPerfect पैकेज आम तौर पर यहां मिलते हैं।

( टीएलडीपी से उद्धृत )


9
क्या केवल उन पैकेजों के लिए उपयोग नहीं किया जाता है जो रेपो में निहित नहीं हैं? इंकस्केप, जिम्प, रिदमबॉक्स आदि के लिए एप्लिकेशन फोल्डर / usr / शेयर में स्थित हैं। यह नहीं के बराबर होगा?
c76c3r8c42b347r8

5
फाइलसिस्टम पदानुक्रम (FHS) पर अधिक हाल की जानकारी के लिए linuxfoundation.org/en/FHS देखें । (नोट: साइट फिलहाल नीचे है, लेकिन शीघ्र ही वापस आनी चाहिए)
jw013

@Toxicbits: कम से कम Gentoo पर / ऑप्ट में बाइनरी पैकेज हैं - विशेष रूप से वे जो गैर-मानक फ़ाइल सिस्टम पदानुक्रम के कारण / usr पर इंस्टॉल नहीं किए जा सकते हैं।
मैकीज पीचोटका

टीएलडीपी बढ़िया लगता है! खैर, एक साइड नोट पर; पहली बार मैंने टीएलडीपी देखा, मैंने सोचा: "बहुत लंबा नहीं था ... चोटी? क्या?"
एग

3
यह गलत है। / बिन में केवल निष्पादन योग्य कार्यक्रम होते हैं। Windows प्रोग्राम फ़ाइलें निर्देशिका में प्रत्येक इंस्टॉल किए गए एप्लिकेशन के लिए एक उपनिर्देशिका होती है, जिसमें सभी निष्पादन योग्य, dlls, डेटा फ़ाइलें, और एप्लिकेशन के साथ / इसके द्वारा आवश्यक सभी चीजें शामिल होती हैं।
Psusi

45

कोई सीधा समकक्ष नहीं है। निर्देशिका संरचना बहुत अलग है। विंडोज के तहत, आपके पास प्रत्येक इंस्टॉल किए गए पैकेज / सॉफ़्टवेयर के लिए एक एकल निर्देशिका है जिसमें (जैसे C:\Program Files\MyProgram) से संबंधित सभी फाइलें हैं । लिनक्स के तहत प्रत्येक सॉफ्टवेयर फ़ाइल प्रकार और कुछ अन्य नियम के अनुसार कई निर्देशिकाओं में "छितरी हुई" है।

एक उदाहरण के रूप में, हम जांच कर सकते xscreensaverहैं कि प्रोग्राम से संबंधित विभिन्न फाइलें कहाँ स्थापित हैं:

/etc/pam.d/xscreensaver
/etc/xscreensaver
/etc/xscreensaver/README
/usr/bin/xscreensaver
/usr/bin/xscreensaver-command
/usr/bin/xscreensaver-demo
/usr/bin/xscreensaver-gl-helper
/usr/share/X11/app-defaults/XScreenSaver
/usr/share/applications/xscreensaver-properties.desktop
/usr/share/doc/packages/xscreensaver
/usr/share/doc/packages/xscreensaver/README
/usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/da/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/de/LC_MESSAGES/xscreensaver.mo
[ ... ]
/usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo
/usr/share/man/man1/xscreensaver-command.1.gz
/usr/share/man/man1/xscreensaver-demo.1.gz
/usr/share/man/man1/xscreensaver.1.gz
/usr/share/man/man6/xscreensaver-gl-helper.6x.gz
/usr/share/pixmaps/xscreensaver.xpm
/usr/share/xscreensaver
/usr/share/xscreensaver/glade
/usr/share/xscreensaver/glade/screensaver-cmndln.png
/usr/share/xscreensaver/glade/screensaver-colorselector.png
[ ... ]

चिंता मत करो, आमतौर पर जब एक संस्थापक पूछता है, जहां के लिए स्थापित करने के लिए, सही जवाब निम्नलिखित में से एक है: /, /opt, /usr,/usr/local

जैसा कि आप देख सकते हैं, कुछ सरल नियम xscreensaverके /usrअनुसार काफी सभी (1) फाइलें स्थापित की गई हैं : निष्पादनयोग्य /usr/bin, में मैन्युअल पृष्ठ /usr/share/man, प्रलेखन में /usr/share/doc/packages/PROGRAMNAMEऔर इतने पर।

जब एक इंस्टॉलर एक इंस्टॉलेशन के लिए पूछता है prefix, तो आमतौर पर वह आधार पथ चाहता है जिसके तहत प्रोग्राम इंस्टॉल करें। मेरे xscreensaverउदाहरण में, यह है /usr

सरल नियम के रूप में: /केवल उस प्रोग्राम को सम्‍मिलित करना चाहिए जो सिस्टम को बूट करने के लिए आवश्यक है (जैसे C:\windows\system32), /usr/localउस प्रोग्राम को केवल उस अनूठे कंप्यूटर पर आवश्यक होना चाहिए, /opt(2) सभी वैकल्पिक प्रोग्राम जिनमें गैर मानक निर्देशिका संरचना और /usrसभी मानक सॉफ़्टवेयर हैं ।

किसी भी स्थिति में, यह एक मानक मौजूद है जो इन सभी नियमों को विस्तार से परिभाषित करता है: फाइलसिस्टम पदानुक्रम मानक

(1) सिस्टम-वाइड कॉन्फ़िगरेशन फ़ाइलों में रहना चाहिए /etc

(2) लिनक्स के तहत काफी अप्रचलित


/opt/usr/localकाफी समय से थर्ड पार्टी सॉफ्टवेयर के लिए पसंद किया जाता है ।
स्टीव-ओ

7
बस एक स्पष्टीकरण, /usr/share"शेयर" कहा जाता है क्योंकि यह विभिन्न आर्किटेक्चर (प्रलेखन, स्क्रिप्ट, चित्र) के बीच साझा किया जाता है, जबकि /usr/lib*वास्तुकला-निर्भर फाइलों के लिए है (और निष्पादन योग्य नहीं है, जो कि /usr/bin)।
यूडोक्सोस

12

Ususually, /bin, /usr/bin, /usr/local/bin, या /opt/bin। मुझे लगता है /usr/binऔर /opt/binप्रोग्राम फाइल्स के सबसे करीब हैं, क्योंकि आमतौर पर वे नॉन सिस्टम क्रिटिकल बायनेरिज़ के लिए होते हैं जो सिस्टम एडमिनिस्ट्रेटर द्वारा इंस्टॉल किए जाते हैं, हालाँकि विंडो के विपरीत इन दोनों में पैकेज मैनेजर के साथ प्रोग्राम इंस्टॉल होते हैं। /usr/local/binनॉन डिस्ट्रो पैकेज्ड सॉफ्टवेयर के लिए कहां है। /binजैसे सिस्टम महत्वपूर्ण बायनेरिज़ के लिए है /bin/sh


चार विकल्प क्यों? /bin, /usr/bin, /usr/local/binया /opt/bin। क्या एक मानक स्थान नहीं है? मेरे द्वारा पूछे जाने का कारण यह है क्योंकि मैं कुछ VM पर सॉफ़्टवेयर स्थापित कर रहा हूं और डिफ़ॉल्ट स्थान जिसमें कभी भी विभाजन सबसे बड़ा स्थान होता है। मैं उस विभाजन स्थान को निर्देशिका में बदलना चाहता हूं जहां सॉफ्टवेयर आमतौर पर जाता है और सभी VM के सॉफ़्टवेयर को अलग-अलग स्थान पर नहीं रखा जाता है।
थॉमस

1
मानक कई स्थानों को निर्दिष्ट करता है idk क्यों pathname नीचे है, लेकिन यहाँ कैश्ड FHS का लिंक दिया गया है जो इन बातों के बारे में अधिक परिभाषा में जाता है, और वास्तव में यह इस बात पर बहुत निर्भर करता है कि आप क्या स्थापित कर रहे हैं। इसके अलावा RHEL, Suse और Ubuntu अलग-अलग हैं, इसलिए वे एक ही चीज़ को थोड़े अलग स्थानों पर रख सकते हैं। /optउदाहरण के लिए आमतौर पर मालिकाना सॉफ्टवेयर के लिए उपयोग किया जाता है।
xenoterracide

इसके अलावा आमतौर पर ... आमतौर पर वे सभी एक ही विभाजन पर होते हैं ... कभी-कभी /usr/एक अलग विभाजन होता है।
xenoterracide

1
कुछ लोग (जैसे हर्ड परियोजना) का तर्क है कि /binऔर /usr/binभेदभाव अब अप्रचलित है; ऐतिहासिक दृष्टि से, सिस्टम की गंभीर सामान में होगा /bin, /lib... (रूट में सीधे) है, जबकि /usr(साथ /usr/bin, /usr/lib, ...) बाद में (शायद नेटवर्क पर) घुड़सवार किया जाएगा, बुनियादी प्रणाली कार्यक्षमता के लिए आवश्यक नहीं किया जा रहा।
यूडॉक्सोस

1
@ थोमस, /optबाहर नहीं निकलना चाहिए। कुछ लोग अतीत में सोचते थे कि सभी अन्य ऐप से अलग स्थान पर कुछ एप्लिकेशन रखना अच्छा होगा। /binरूट विभाजन पर है। चूंकि कुछ सिस्टम पर, रूट विभाजन पर स्थान सीमित है, गैर-आवश्यक बायनेरिज़ (यानी सभी उपयोगकर्ता अनुप्रयोग) को स्थानांतरित कर दिया गया था /usr/bin
Jan

8

इस पर एक नज़र डालें man hier"फाइल सिस्टम पदानुक्रम का विवरण"।


3

जैसा कि अन्य ने बताया है, पैकेज मैनेजर के माध्यम से स्थापित प्रोग्राम कई निर्देशिकाओं में बिखरे हुए हैं। जबकि बाइनरी आम तौर पर पाया जाता है /usr/bin, सिस्टम-वाइड कॉन्फ़िगरेशन फाइलें /etcऔर इसी तरह होती हैं।

यदि पैकेज प्रबंधक के माध्यम से कोई एप्लिकेशन इंस्टॉल नहीं किया गया है, तो फ़ाइलों को ऐसी जगह स्थापित किया जाना चाहिए जहां वे पैकेज प्रबंधक के साथ हस्तक्षेप नहीं करते हैं। यह जगह है /usr/local

यदि आपसे कोई स्थापना पथ पूछा जाता है, तो सबसे आम विकल्प होगा /usr/local/appname


3

echo $PATHपथ (ओं) को देखने के लिए अपने टर्मिनल में टाइप करें शेल एक कमांड को खोजने के लिए दिखेगा। यह जिस फ़ाइल में छपा होता है, उसमें फ़ाइल की जाँच करता है।


1
यह ओपी ने जो पूछा है उसका जवाब नहीं है।
फ्रांसेस्को तुर्को

1

वैसे आप अपने सभी समाधानों को नहीं ढूंढ पाएंगे /binऔर sbinक्योंकि वे ज्यादातर सिस्टम कमांड (यानी सिस्टम द्वारा उपयोग किए जाने वाले कमांड) को पकड़ते हैं।

/usr/binआदर्श रूप "Program Files"से यूनिक्स दुनिया कहा जा सकता है। के बारे में /optबहुत कुछ संकुल चुनते स्थापना के लिए स्थान का उपयोग करने के लिए, एक ही का उपयोग कर संकुल पर लागू होता है /etc/या /varस्थानों के रूप में

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