ओएस एक्स फाइलसिस्टम के लिए मानक क्या है? उदा / ऑप्ट / बनाम / यूएसआर /


35

क्या करना चाहिए /opt/और क्या में जाना चाहिए और क्या / में जाना चाहिए /usr/? मेरी समझ यह है कि /usr/उपयोगकर्ता घर निर्देशिकाओं के लिए उपयोग किया जाता है, लेकिन जब से वे मौजूद हैं /Users/- अब क्या उद्देश्य है?

क्या कोई मैनुअल या गाइड है जो सभी अंतर्निहित निर्देशिकाओं के लिए उपयोग किया जाना चाहिए? जैसे क्या है /home/, या /net/?


5
क्या Apple.stackexchange.com/questions/80902/… आपकी क्वेरी का जवाब देता है?
bmike

धन्यवाद @bmike, यह मेरे तात्कालिक मुद्दों का जवाब देता है, लेकिन मैं अभी भी उत्सुक होऊंगा अगर किसी ने अधिक संपूर्ण / संपूर्ण विवरण संकलित किया हो।
Dil लिथियमMatrix

क्या आपने द फाइलसिस्टम पदानुक्रम मानक के लिंक का पालन किया ?
zelanix

1
@zelanix हाँ, और यह अभी भी पर्याप्त रूप से OS X
Dil लिथियमMatrix

जवाबों:


48

क्या कोई मैनुअल या गाइड है जो सभी अंतर्निहित निर्देशिकाओं के लिए उपयोग किया जाना चाहिए? जैसे कि क्या है / घर /, या / नेट /?

सबसे अद्यतित जानकारी और टर्मिनल में फ़ाइल सिस्टम प्रोग्रामिंग गाइड पर एक नज़र डालें man hier, जो फाइलसिस्टम पदानुक्रम का "ऐतिहासिक स्केच" प्रदान करता है (यह संदर्भ के लिए इस उत्तर के अंत में शामिल है)।

आपके प्रश्न की एक टिप्पणी में फाइलसिस्टम पदानुक्रम मानक का उल्लेख है । फ़ाइल सिस्टम प्रोग्रामिंग गाइड के इनकार करने के बाद, आप शायद इस निष्कर्ष पर पहुंचेंगे और man hier, कि macOS FHS का पालन नहीं करता है , यह एक लिनक्स चीज से अधिक है। बेशक, सामान्य UNIX मूल के कारण macOS में FHS और फाइलसिस्टम लेआउट के बीच समानताएं हैं, लेकिन अंतर हड़ताली हैं। macOS इनमें से किसी का भी उपयोग नहीं करता है:

  • /bootफ़ोल्डर -> macOS /System/Library/Kernelsइसके बजाय उपयोग करता है ( macOS के पुराने संस्करणों में, कर्नेल वाला फ़ोल्डर था /)
  • /homeफ़ोल्डर -> macOS /Usersइसके बजाय उपयोग करता है
  • /rootफ़ोल्डर -> macOS /var/rootइसके बजाय उपयोग करता है

और /optकिसी भी दस्तावेज़ में एक बार उल्लेख नहीं किया गया है ( /optनीचे अधिक )

MacOS और एक FHS-अनुरूप OS के बीच एक और अधिक दूरी का उपयोग होता है /private, उदाहरण के /etcलिए एक सिम्लिंक है /private/etc

के बारे में /net: यह एक आटोमोटिव मानचित्र है (सूचीबद्ध /etc/auto_master), अधिक जानकारी के लिए विकिपीडिया देखें।

क्या करना चाहिए और क्या / ऑप्ट / में जाना चाहिए और क्या / usr / में जाना चाहिए? मेरी समझ यह है कि / usr / उपयोगकर्ता घर निर्देशिकाओं के लिए उपयोग किया जाता है, लेकिन जब से यह मौजूद है / उपयोगकर्ता / - अब क्या उद्देश्य है?

हालाँकि /usr उपयोगकर्ताओं की होम डायरेक्टरीज़ को रखने के लिए अतीत में उपयोग किया जाता था , अब ऐसा नहीं है।

आजकल, /usrउपयोगकर्ता कमांड शामिल हैं ( /usr/binसामान्य उपयोगकर्ताओं के लिए और /usr/sbinप्रशासनिक उपयोगकर्ताओं के लिए, जैसे root), साझा लाइब्रेरी ( /usr/lib), मैन पेज ( /usr/share/man), निष्पादनयोग्य जो उपयोगकर्ताओं ( /usr/libexecऔर अन्य) द्वारा सीधे नहीं चलने चाहिए ।

यह एक उपनिर्देशिका भी प्रदान करता है, /usr/localकार्यक्रमों, पुस्तकालयों और अन्य फ़ाइलों को रखने के लिए जो आधार ओएस के साथ नहीं आते हैं।

/optकी एक समान भूमिका है /usr/localऔर वे विनिमेय लगते हैं। हालांकि, अन्य लिनक्स / यूनिक्स सिसड्मिन के साथ काम करने के मेरे अनुभव से, बीएसडी-आधारित यूनिक्स ओएस के लिए एक प्राथमिकता लगती है /usr/local

तो यह मेरी इस पर है: macOS BSD- आधारित है और इसके परिणामस्वरूप मैं उपयोग करूँगा /usr/local। ध्यान दें कि आप एक प्रोग्राम डायरेक्टरी बना सकते हैं और फिर /usr/local/binउदाहरण के लिए , आदि को कमांड लिंक कर सकते हैं :

/usr/local/mysql
/usr/local/mysql/bin/mysqladmin
/usr/local/mysql/lib/libmysqlclient.so
/usr/local/bin/mysqladmin -> ../mysql/bin/mysqladmin
/usr/local/lib/libmysqlclient.so -> ../mysql/lib/libmysqlclient.so

यह लिनक्स और यूनिक्स में भी सामान्य रूप से अभ्यास करता था, लेकिन एफएचएस ने इसे स्पष्ट रूप से मना किया है: यदि आप अपनी खुद की निर्देशिका पदानुक्रम में तृतीय पक्ष पैकेज स्थापित करना चाहते हैं तो आपको /opt/<package>इसके बजाय उपयोग करना चाहिए । ध्यान दें कि FHS- अनुपालन में /etc/opt/<package>और चर फ़ाइलों में कॉन्फ़िगरेशन फ़ाइलों को रखने की आवश्यकता होती है /var/opt/<package>

इसलिए, macOS में, मैं आपको सलाह दूंगा कि आप /usr/localऊपर बताए अनुसार रहें ।

मुझे Cisco VPN और XQuartz जैसे ऐड-ऑन सॉफ़्टवेयर के बारे में पता है जो इसमें स्थापित होते हैं /opt, इसलिए उपरोक्त अंतर धुंधला होने लगते हैं।

man hier

जैसा कि ऊपर बताया गया है man hier:

 A historical sketch of the filesystem hierarchy.  The modern macOS filesystem is documented in the
 ``File System Programming Guide'' available on Apple Developer.

 /             root directory of the filesystem

 /bin/         user utilities fundamental to both single-user and multi-user environments

 /dev/         block and character device files

               fd/  file descriptor files; see fd(4)

 /etc/         system configuration files and scripts

 /mach_kernel  kernel executable (the operating system loaded into memory at boot time).

 /sbin/        system programs and administration utilities fundamental to both single-user and multi-
               user environments

 /tmp/         temporary files

 /usr/         contains the majority of user utilities and applications

               bin/      common utilities, programming tools, and applications
               include/  standard C include files

                         arpa/       C include files for Internet service protocols
                         hfs/        C include files for HFS
                         machine/    machine specific C include files
                         net/        misc network C include files
                         netinet/    C include files for Internet standard protocols; see inet(4)
                         nfs/        C include files for NFS (Network File System)
                         objc/       C include files for Objective-C
                         protocols/  C include files for Berkeley service protocols
                         sys/        system C include files (kernel data structures)
                         ufs/        C include files for UFS

               lib/      archive libraries
               libexec/  system daemons & system utilities (executed by other programs)
               local/    executables, libraries, etc. not included by the basic operating system
               sbin/     system daemons & system utilities (executed by users)
               share/    architecture-independent data files

                         calendar/  a variety of pre-fab calendar files; see calendar(1)
                         dict/      word lists; see look(1)

                                    web2        words from Webster's 2nd International
                                    words       common words

                         man/       manual pages
                         misc/      misc system-wide ascii text files
                         mk/        templates for make; see make(1)
                         skel/      example . (dot) files for new accounts
                         tabset/    tab description files for a variety of terminals; used in the term-
                                    cap file; see termcap(5)
                         zoneinfo/  timezone configuration information; see tzfile(5)

 /var/         multi-purpose log, temporary, transient, and spool files

               at/        timed command scheduling files; see at(1)
               backups/   misc. backup files
               db/        misc. automatically generated system-specific database files
               log/       misc. system log files

               mail/      user mailbox files
               run/       system information files describing various info about system since it was
                          booted

                          utmpx       database of current users; see utmpx(5)

               rwho/      rwho data files; see rwhod(8), rwho(1), and ruptime(1)
               spool/     misc. printer and mail system spooling directories

                          mqueue/     undelivered mail queue; see sendmail(8)

               tmp/       temporary files that are kept between system reboots
               folders/   per-user temporary files and caches

1
इसलिए, उदाहरण के लिए, /usr/X11/अनुशंसित नहीं है?
१०:५२ पर गेदर

@ प्रसन्नता मुझे खुशी है कि आपने इसे उपयोगी पाया।
jaume

1
उन पाठकों के लिए जिनके पास OS X (for man hier) नहीं है: hier (7) के लिए
ग्राहम पेरिन

1
InsanelyMac मंचों पर यह पोस्ट कहती है, "Apple ने पिछली बार Mavericks में अपने कर्नेल के लिए mach_kernel फ़ाइलनाम का उपयोग किया था , इसलिए आपको सिएरा में ऐसी कोई फ़ाइल नहीं मिलेगी! Yosemite के बाद से, OS X कर्नेल अब / System / Library / Kernels में रखा गया है। फ़ाइल का नाम कर्नेल , "इसलिए मेरा पहले का अनुमान स्पष्ट रूप से गलत था, ऐसा प्रतीत होता है।
रैंडमDSdevel

1
@RandomDSdevel धन्यवाद, मुझे उस परिवर्तन की जानकारी नहीं थी, मैंने अपना उत्तर अपडेट कर दिया है।
jaume

0

जब मैं /opt(अक्सर MacPorts के लिए जुड़ा हुआ/opt/local ) और पथों के 'मानक' उपयोगों के बारे में पढ़ता हूं , तो मुझे लगता है कि फ़िंक का भी , जो कम से कम 2001 के बाद से है । निम्नलिखित पथ के लोकप्रिय उपयोग की कल्पना करें:

/sw

मैक ओएस एक्स पर फ़ाइल सिस्टम पदानुक्रम के एक गैरमानक भाग के लापरवाह उपयोग का एक उदाहरण

2003/02/06

Virex 7.2, सभी के लिए नि: शुल्क है। मैक सदस्य, बदनाम फ़िंक लाइब्रेरी :

यह बहुत बुरा है। फ़िंक उपयोगकर्ता, इसे स्थापित न करें ...

/Volumes/Virex 7.2.dmg/Virex 7.2.pkg 328 % lsbom Contents/Resources/Virex\ 7.2.bom | grep sw
./sw    40775   0/80
./sw/lib        40775   0/80
./sw/lib/libcrypto.0.9.6.dylib  100644  0/80    945416  3192711062
./sw/lib/libcurl.2.0.2.dylib    100644  0/80    634480  510417796
./sw/lib/libcurl.2.dylib        100644  0/80    634480  510417796
./sw/lib/libdl.0.dylib  100644  0/80    15124   4193639260
./sw/lib/libssl.0.9.6.dylib     100644  0/80    261776  3001832603

घटना की अन्य चर्चा, जिसमें लाइसेंस के लिए सम्मान शामिल है:

2003/04/16

एक पलक समाचार आइटम:

विरेक्स समस्या हल हो गई

McAfee ने Virex 7.2.1 जारी किया है, जो अब मुख्य फ़िंक निर्देशिका को अधिलेखित नहीं करता है /sw। विंक उपयोगकर्ताओं को वीरेक्स 7.2 से बचना जारी रखना चाहिए।

प्रारंभिक रिपोर्टों से संकेत मिलता है कि Virex को 7.2 से 7.2.1 तक अपग्रेड करना अभी भी कुछ समस्याओं को छोड़ देता है। यदि आप विरेक को फ़िंक के साथ अपग्रेड नहीं करते हैं, और बाद में फ़िंक को स्थापित करना चाहते हैं, तो आपको /swइंस्टॉल करने से पहले निर्देशिका को हाथ से हटाना होगा । और अगर आप विरेक्स को पहले से स्थापित फिन्क के साथ अपग्रेड करते हैं, तो आपको तुरंत फ़िंक रीइनस्टॉल चलाना चाहिए ओपनस्ले-श्लीब dlcompat-shlibs कर्ल-एसएसएल-श्लीब को उन फ़ाइलों को पुनर्स्थापित करने के लिए, जिन्हें विरेक्स एक्सटेंशन ने हटा दिया है।

2003-05

McAfee Virex संस्करण 7.2.1 के रिलीज़ नोट्स ने फ़िंक के उपयोगकर्ताओं को होने वाली समस्याओं का कोई उल्लेख नहीं किया।

अलग नोट के रूप में …

2004/08/31

अवलोकन कि Virex 7.5 अब उपलब्ध नहीं हैMac सदस्य


बीएसडी से संबंधित

... ओएस एक्स ... मेरी समझ यह है कि /usr/उपयोगकर्ता के घर निर्देशिकाओं के लिए उपयोग किया जाता है ...

ऑपरेटिंग सिस्टम जैसे FreeBSD और PC-BSD के लिए यह अभी भी सही है।

जबकि /usr/home/पर स्पष्ट नहीं है https://www.freebsd.org/cgi/man.cgi?query=hier&sektion=7&manpath=FreeBSD+10.2-RELEASE पथ जैसे दस्तावेजों में एक उदाहरण प्रस्तुत किया जाता है:

  • FreeBSD और UNIX® दोनों के लिए नए लोगों के लिए: 3. चारों ओर देखना

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