Qual è lo standard per il filesystem OS X? per esempio. / opt / vs. / usr /

31

Che cosa deve e dovrebbe andare in /opt/ e che cosa dovrebbe / va in /usr/ ? La mia comprensione è che /usr/ era usato per le home directory degli utenti, ma dal momento che esistono in /Users/ - qual è lo scopo adesso?

Esiste un manuale o una guida su cosa dovrebbero essere utilizzate tutte le directory integrate? Ad esempio, cos'è /home/ o /net/ ?

    
posta DilithiumMatrix 30.01.2014 - 00:21
fonte

2 risposte

42

Esiste un manuale o una guida su cosa dovrebbero essere utilizzate tutte le directory integrate? Ad esempio, cos'è / home / o / net /?

Dai un'occhiata a Guida alla programmazione del file system per le informazioni più aggiornate e al man hier in Terminal, che fornisce uno" schizzo storico "della gerarchia del filesystem (è incluso alla fine di questo rispondi per riferimento).

Un commento alla tua domanda menziona Standard della gerarchia del filesystem . Probabilmente arriverai alla conclusione, dopo aver esaminato Guida alla programmazione del file system e man hier , che macOS non segue il FHS , è più una cosa di Linux. Naturalmente, ci sono delle somiglianze tra l'FHS e il layout del file system in macOS a causa della comune origine UNIX, ma le differenze sono notevoli. macOS non usa nessuno di questi:

  • % cartella/boot - > macOS usa /System/Library/Kernels invece (nelle vecchie versioni di macOS, la cartella contenente il kernel era / )
  • % cartella/home - > macOS usa /Users invece
  • % cartella/root - > macOS usa /var/root invece

e /opt non è menzionato non una volta in nessun documento (più su /opt sotto.)

Un'ulteriore distorsione tra macOS e un sistema operativo compatibile con FHS è l'uso di /private , ad esempio /etc è un link simbolico a /private/etc .

Informazioni su /net : è una mappa di automounter (elencata in /etc/auto_master ), vedi Wikipedia per ulteriori informazioni.

Che cosa deve e dovrebbe andare in / opt / e cosa dovrebbe / va in / usr /? La mia comprensione è che / usr / usato per le home directory degli utenti, ma poiché esiste in / Users / - qual è lo scopo adesso?

Sebbene /usr sia stato utilizzato in passato per posizionare le home directory degli utenti , non è più il caso.

Al giorno d'oggi, /usr contiene comandi utente (in /usr/bin per utenti normali e /usr/sbin per utenti amministrativi, come root ), librerie condivise ( /usr/lib ), pagine man ( /usr/share/man ), eseguibili che non dovrebbe essere eseguito direttamente dagli utenti ( /usr/libexec ) e altre cose.

Offre anche una sottodirectory, /usr/local , per posizionare programmi, librerie e altri file che non sono forniti con il sistema operativo di base.

/opt ha un ruolo molto simile a /usr/local e sembrano intercambiabili. Tuttavia, dalla mia esperienza con altri amministratori di sistema Linux / UNIX, sembra esserci una preferenza per /usr/local nei sistemi operativi UNIX basati su BSD.

Quindi questo è il mio punto di vista: macOS è basato su BSD e di conseguenza utilizzerei /usr/local . Si noti che è possibile creare una directory di programma e quindi comandi di collegamento simbolico a /usr/local/bin , ecc, ad esempio:

/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

Questa era una pratica abituale anche in Linux e UNIX, ma l'FHS vieta esplicitamente it: se si desidera installare pacchetti di terze parti nella propria gerarchia di directory, utilizzare invece /opt/<package> . Nota che la conformità FHS richiede di mettere i file di configurazione in /etc/opt/<package> e i file variabili in /var/opt/<package> .

Quindi, in macOS, ti consiglio di attenersi a /usr/local come descritto sopra.

Sono a conoscenza di software aggiuntivi come Cisco VPN e XQuartz installati in /opt , quindi le distinzioni sopra riportate iniziano a sfocare.

man hier

Come menzionato sopra, questo è 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
    
risposta data 30.01.2014 - 10:30
fonte
0

Quando ho letto /opt (spesso associato a /opt/local per MacPorts ) e di usi "standard" di percorsi, penso anche a Fink, che esiste dal 2001 almeno . Fink ha usato il seguente percorso:

/sw

Un esempio di uso incauto di una parte non standard della gerarchia del file system su Mac OS X

2003-02-06

Virex 7.2, gratuito per tutti i membri .Mac, infamemente ha sovrascritto le librerie Fink :

This is very bad. Fink users, don't install this …

/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

Altre discussioni sull'incidente, incluso il rispetto per le licenze, includevano:

2003-04-16

Un novità Fink elemento:

Virex problem resolved

McAfee has released Virex 7.2.1, which no longer overwrites the main Fink directory /sw. Fink users should continue to avoid Virex 7.2.

Early reports indicate that upgrading Virex from 7.2 to 7.2.1 still leaves some problems however. If you upgrade Virex with Fink not installed, and subsequently wish to install Fink, you will need to delete the /sw directory by hand before installing. And if you upgrade Virex with Fink already installed, you should immediately run fink reinstall openssl-shlibs dlcompat-shlibs curl-ssl-shlibs to restore files which the Virex upgrade may have deleted.

2003-05

Release Note per McAfee Virex Versione 7.2.1 non ha fatto alcun cenno ai problemi causati agli utenti di Fink.

Come nota a margine ...

2004-08-31

Osservazioni che Virex 7.5 non era più disponibile per i membri di .Mac .

BSD legate

OS X … My understanding is that /usr/ used to be for user home directories …

Questo è ancora vero per sistemi operativi come FreeBSD e PC-BSD.

Sebbene /usr/home/ non sia esplicito al link il percorso è esemplificato in documenti come:

risposta data 14.03.2016 - 13:41
fonte

Leggi altre domande sui tag