Was ist der Standard für OS X-Dateisysteme? zB / opt / vs. / usr /

35

Was macht und soll gehen /opt/und was soll / macht gehen /usr/? Ich verstehe, dass dies /usr/früher für Benutzer-Home-Verzeichnisse galt, aber seitdem sie existieren /Users/- wozu dient das jetzt?

Gibt es ein Handbuch oder eine Anleitung, wofür alle integrierten Verzeichnisse verwendet werden sollten? Wie ist was /home/, oder /net/?

DilithiumMatrix
quelle
5
Hat apple.stackexchange.com/questions/80902/... Ihre Anfrage beantworten?
bmike
Danke @bmike, es beantwortet meine unmittelbaren Fragen, aber ich wäre immer noch gespannt, ob jemand eine vollständigere / umfassendere Beschreibung zusammengestellt hat.
DilithiumMatrix
Haben Sie den Link zu The Filesystem Hierarchy Standard befolgt ?
Zelanix
1
@zelanix ja, und es ist immer noch nicht ausreichend für OS X
DilithiumMatrix

Antworten:

48

Gibt es ein Handbuch oder eine Anleitung, wofür alle integrierten Verzeichnisse verwendet werden sollten? Wie ist / home / oder / net /?

Die aktuellsten Informationen finden Sie im Programmierhandbuch für Dateisysteme und man hierin Terminal, das eine "historische Skizze" der Dateisystemhierarchie enthält (diese finden Sie am Ende dieser Antwort als Referenz).

In einem Kommentar zu Ihrer Frage wird der Dateisystem-Hierarchiestandard erwähnt . Sie werden wahrscheinlich zu dem Schluss gekommen, nach dem Durchlesen File System Programming Guide und man hier, dass macOS nicht folgt FHS , die mehr von einer Linux - Sache. Natürlich gibt es Ähnlichkeiten zwischen dem FHS- und dem Dateisystem-Layout in macOS aufgrund des gemeinsamen UNIX-Ursprungs, aber die Unterschiede sind auffällig. macOS verwendet keine der folgenden Methoden:

  • /bootordner -> macOS verwendet /System/Library/Kernelsstattdessen (in älteren versionen von macOS war der ordner mit dem kernel /)
  • /homeordner -> macOS verwendet /Usersstattdessen
  • /rootordner -> macOS verwendet /var/rootstattdessen

und /optwird in keinem Dokument einmal erwähnt (mehr dazu weiter /optunten.)

Eine weitere Unterscheidung zwischen macOS und einem FHS-konformen Betriebssystem ist die Verwendung von /privatebeispielsweise /etceinem Symlink zu /private/etc.

Info /net: Es handelt sich um eine Automounter-Karte (aufgeführt in /etc/auto_master). Weitere Informationen finden Sie in Wikipedia .

Was geht in / opt / und was geht in / usr /? Ich verstehe, dass / usr / für Benutzer-Ausgangsverzeichnisse verwendet wurde, aber da dies in / Users / vorhanden ist - wozu dient es jetzt?

Obwohl /usr in der Vergangenheit verwendet wurde, um die Home-Verzeichnisse der Benutzer zu platzieren , ist dies nicht mehr der Fall.

/usrEnthält heutzutage Benutzerbefehle (in /usr/binfür normale Benutzer und /usr/sbinfür administrative Benutzer wie root), gemeinsam genutzte Bibliotheken ( /usr/lib), Manpages ( /usr/share/man), ausführbare Dateien, die nicht direkt von Benutzern ( /usr/libexec) ausgeführt werden sollten, und andere Dinge.

Es bietet auch ein Unterverzeichnis, /usr/localin dem Programme, Bibliotheken und andere Dateien abgelegt werden können, die nicht zum Basisbetriebssystem gehören.

/opthat eine sehr ähnliche Rolle /usr/localund sie scheinen austauschbar. Aus meiner Erfahrung mit anderen Linux / UNIX-Systemadministratoren scheint es jedoch eine Präferenz für /usr/localBSD-basierte UNIX-Betriebssysteme zu geben.

Das ist also meine Meinung: macOS ist BSD-basiert und ich würde es folglich verwenden /usr/local. Beachten Sie, dass Sie ein Programmverzeichnis erstellen und dann Befehle mit Symbolen verknüpfen können /usr/local/bin, zum Beispiel:

/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

Dies war auch unter Linux und UNIX üblich, wird jedoch vom FHS ausdrücklich untersagt : Wenn Sie Pakete von Drittanbietern in einer eigenen Verzeichnishierarchie installieren möchten, sollten Sie /opt/<package>stattdessen diese verwenden. Beachten Sie, dass die FHS-Konformität das Einfügen von Konfigurationsdateien /etc/opt/<package>und variablen Dateien erfordert /var/opt/<package>.

Daher würde ich empfehlen, dass Sie sich unter macOS an /usr/localdie oben beschriebene Vorgehensweise halten.

Mir sind Add-On-Software wie Cisco VPN und XQuartz bekannt , die installiert werden /opt, sodass die oben genannten Unterschiede allmählich verschwimmen.

man hier

Wie oben erwähnt ist dies 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
jaume
quelle
1
Also zum Beispiel /usr/X11/nicht zu empfehlen?
GEdgar
@ Zhermes Ich bin froh, dass Sie es nützlich fanden.
Jaume
1
Für Leser, die kein OS X (für man hier) haben: Apples Mac OS X-Handbuch für hier (7)
Graham Perrin
1
Dieser Beitrag auf den InsanelyMac Foren sagt : „Apple - zuletzt verwendete mach_kernel Dateinamen für ihre Kernel in Mavericks, so werden Sie keine solche Datei in Sierra! Seit Yosemite finden, OS X - Kernel ist nun in platziert / System / Library / Kernels unter der Dateiname Kernel , "so meine frühere Vermutung war anscheinend falsch, es scheint.
RandomDSdevel
1
@RandomDSdevel Vielen Dank, diese Änderung war mir nicht bekannt. Ich habe meine Antwort aktualisiert.
Jaume
0

Wenn ich von /opt(oft mit /opt/localfür MacPorts verbundenen ) und "Standard" -Verwendungen von Pfaden lese , denke ich auch an Fink, das es seit mindestens 2001 gibt . Fink popularisierte Verwendung des folgenden Pfades:

/sw

Ein Beispiel für die unachtsame Verwendung eines nicht standardmäßigen Teils der Dateisystemhierarchie unter Mac OS X

2003-02-06

Virex 7.2, kostenlos für alle .Mac-Mitglieder, hat die Fink-Bibliotheken infamös überschrieben :

Das ist sehr schlecht. Fink User, installiere das nicht ...

/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

Weitere Diskussionen über den Vorfall, einschließlich der Einhaltung der Lizenzbestimmungen, umfassten:

2003-04-16

Eine Nachricht von Fink :

Virex-Problem behoben

McAfee hat Virex 7.2.1 veröffentlicht, das das Hauptverzeichnis von Fink nicht mehr überschreibt /sw. Fink-Benutzer sollten weiterhin Virex 7.2 meiden.

Frühe Berichte deuten darauf hin, dass die Aktualisierung von Virex von 7.2 auf 7.2.1 immer noch einige Probleme bereitet. Wenn Sie Virex mit nicht installiertem Fink aktualisieren und anschließend Fink installieren möchten, müssen Sie das /swVerzeichnis vor der Installation manuell löschen . Und wenn Sie Virex mit bereits installiertem Fink aktualisieren, sollten Sie sofort fink uninstall openssl-shlibs dlcompat-shlibs curl-ssl-shlibs ausführen , um Dateien wiederherzustellen, die durch das Virex-Upgrade möglicherweise gelöscht wurden.

2003-05

In den Versionshinweisen für McAfee Virex Version 7.2.1 wurden die Probleme, die für Benutzer von Fink verursacht wurden, nicht erwähnt.

Als Randnotiz …

2004-08-31

Beobachtungen, dass Virex 7.5 .Mac Mitgliedern nicht mehr zur Verfügung stand .


BSD-bezogen

OS X… Mein Verständnis ist, dass es sich /usr/früher um private Benutzerverzeichnisse handelte

Das gilt immer noch für Betriebssysteme wie FreeBSD und PC-BSD.

Während /usr/home/dies unter https://www.freebsd.org/cgi/man.cgi?query=hier&sektion=7&manpath=FreeBSD+10.2-RELEASE nicht explizit angegeben ist, wird der Pfad in folgenden Dokumenten veranschaulicht:

Graham Perrin
quelle
Warum ist das herabgestimmt?
Pacerier