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


35

Cosa fa e cosa dovrebbe andare /opt/e cosa dovrebbe / cosa dovrebbe andare /usr/? La mia comprensione è quella /usr/usata per le home directory degli utenti, ma dal momento che esistono in /Users/- qual è lo scopo adesso?

Esiste un manuale o una guida per cui utilizzare tutte le directory integrate? Come quello che è /home/, o /net/?


5
Fa apple.stackexchange.com/questions/80902/... rispondere alla vostra domanda?
bmike

Grazie @bmike, risponde ai miei problemi immediati, ma sarei ancora curioso di sapere se qualcuno ha compilato una descrizione più completa / esaustiva.
DilithiumMatrix

Hai seguito il link a The Filesystem Hierarchy Standard ?
zelanix,

1
@zelanix sì, e ancora non
risolve

Risposte:


48

Esiste un manuale o una guida per cui utilizzare tutte le directory integrate? Come è / home /, o / net /?

Dai un'occhiata alla Guida alla programmazione del file system per le informazioni più aggiornate e al man hierTerminale, che fornisce uno "schizzo storico" della gerarchia del filesystem (è incluso alla fine di questa risposta come riferimento).

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

  • /bootcartella -> usa /System/Library/Kernelsinvece macOS (nelle versioni precedenti di macOS, la cartella contenente il kernel era /)
  • /homecartella -> usa /Usersinvece macOS
  • /rootcartella -> usa /var/rootinvece macOS

e /optnon è menzionato nemmeno una volta in nessun documento (maggiori informazioni di /optseguito).

Un'ulteriore distinzione tra macOS e un sistema operativo conforme a FHS è l'uso di /private, ad esempio /etcè un collegamento simbolico a /private/etc.

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

Cosa fa e dovrebbe andare in / opt / e cosa dovrebbe / dovrebbe andare in / usr /? La mia comprensione è che / usr / era usato per le home directory degli utenti, ma dato che esiste in / Users / - qual è lo scopo adesso?

Sebbene sia /usr stato usato in passato per posizionare le home directory degli utenti , non è più così.

Al giorno d'oggi, /usrcontiene comandi utente (in /usr/binper utenti normali e /usr/sbinper utenti amministrativi, come root), librerie condivise ( /usr/lib), pagine man ( /usr/share/man), file eseguibili che non dovrebbero essere eseguiti direttamente dagli utenti ( /usr/libexec) e altre cose.

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

/optha un ruolo molto simile /usr/locale sembrano intercambiabili. Tuttavia, dalla mia esperienza di lavoro con altri amministratori di sistema Linux / UNIX, sembra esserci una preferenza per /usr/locali sistemi operativi UNIX basati su BSD.

Quindi questa è la mia opinione : macOS è basato su BSD e di conseguenza lo userei /usr/local. Si noti che è possibile creare una directory di programma e quindi comandi symlink 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 comune anche in Linux e UNIX, ma FHS lo proibisce esplicitamente : se si desidera installare pacchetti di terze parti nella propria gerarchia di directory, è necessario utilizzare /opt/<package>invece. Si noti che la conformità FHS richiede l'inserimento dei file di configurazione /etc/opt/<package>e dei file variabili /var/opt/<package>.

Quindi, in macOS, consiglierei di attenersi a /usr/localcome sopra descritto.

Sono a conoscenza di software aggiuntivi come Cisco VPN e XQuartz che si installano /opt, quindi le distinzioni sopra iniziano a confondersi.

man hier

Come detto 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

1
Quindi, ad esempio, /usr/X11/non è raccomandato?
GEdgar,

@zhermes Sono contento che l'abbia trovato utile.
Jaume

1
Per i lettori che non hanno OS X (per man hier): la pagina del manuale di
Graham Perrin

1
Questo post sui forum di InsanelyMac dice: "Apple ha usato l'ultima volta il nome del file mach_kernel per il proprio kernel in Mavericks, quindi non troverai alcun file simile in Sierra! Da Yosemite, il kernel OS X è ora collocato in / Sistema / Libreria / Kernels sotto il nome file kernel ", quindi la mia ipotesi precedente era apparentemente sbagliata, a quanto pare.
RandomDSdevel,

1
@RandomDSdevel Grazie, non ero a conoscenza di quel cambiamento, ho aggiornato la mia risposta.
Jaume

0

Quando ho letto di /opt(spesso associato a /opt/localMacPorts ) e di usi "standard" dei percorsi, penso anche a Fink, che esiste da almeno il 2001 . Fink uso popolare del seguente percorso:

/sw

Un esempio di uso negligente 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, famigerato sovrascrivono librerie Fink :

Questo è molto brutto. Fink utenti, non installare questo ...

/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 delle licenze, includevano:

2003/04/16

Una notizia Fink :

Problema Virex risolto

McAfee ha rilasciato Virex 7.2.1, che non sovrascrive più la directory principale di Fink /sw . Gli utenti di Fink dovrebbero continuare a evitare Virex 7.2.

I primi rapporti indicano che l'aggiornamento di Virex da 7.2 a 7.2.1 lascia comunque alcuni problemi. Se aggiorni Virex con Fink non installato e successivamente desideri installare Fink, dovrai eliminare /swmanualmente la directory prima dell'installazione. E se aggiorni Virex con Fink già installato, dovresti eseguire immediatamente Fink reinstalls openssl-shlibs dlcompat-shlibs curl-ssl-shlibs per ripristinare i file che l'aggiornamento di Virex potrebbe aver eliminato.

2003-05

Le note sulla versione di McAfee Virex versione 7.2.1 non menzionavano i 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 .Mac .


BSD-correlate

... OS X ... La mia comprensione è che /usr/era per le home directory degli utenti ...

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

Sebbene /usr/home/non sia esplicito su https://www.freebsd.org/cgi/man.cgi?query=hier&sektion=7&manpath=FreeBSD+10.2-RELEASE il percorso è esemplificato in documenti come:


Allora perché questo è downvoted?
Pacerier
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.