Während beide Dateien enthalten sollen, die nicht zum Betriebssystem gehören, /optund /usr/localnicht denselben Satz von Dateien enthalten sollen.
/usr/localist ein Ort zum Installieren von Dateien, die vom Administrator erstellt wurden, normalerweise mithilfe des makeBefehls (z ./configure; make; make install. B. ). Die Idee ist, Konflikte mit Dateien, die Teil des Betriebssystems sind, zu vermeiden, die entweder überschrieben oder die lokalen überschrieben würden (z. B. /usr/bin/fooTeil des Betriebssystems, während dies /usr/local/bin/fooeine lokale Alternative ist).
Alle Dateien unter /usrsind zwischen Betriebssysteminstanzen gemeinsam nutzbar, obwohl dies unter Linux selten der Fall ist. Dies ist ein Teil, in dem sich die FHS geringfügig widerspricht, da /usrsie als schreibgeschützt definiert ist, jedoch /usr/local/binLese- und Schreibzugriff benötigt, damit die lokale Installation der Software erfolgreich ist. Der SVR4-Dateisystemstandard, der die Hauptinspirationsquelle für FHS war, empfiehlt, dieses Problem zu vermeiden /usr/localund /opt/localstattdessen zu verwenden, um dieses Problem zu beheben.
/usr/localist ein Erbe aus dem ursprünglichen BSD. Zu dieser Zeit /usr/binbefanden sich der Quellcode der Betriebssystembefehle in /usr/src/binund /usr/src/usr.bin, während sich die Quelle der lokal entwickelten Befehle in /usr/local/srcbefand und deren Binärdateien in /usr/local/bin. Es gab keine Vorstellung von Verpackung (außerhalb von Tarballs).
Auf der anderen Seite /optbefindet sich ein Verzeichnis für die Installation entbündelter Pakete (dh Pakete, die nicht Teil der Betriebssystemdistribution sind, aber von einer unabhängigen Quelle bereitgestellt werden). Jedes Verzeichnis befindet sich in einem eigenen Unterverzeichnis. Sie bestehen bereits aus kompletten Paketen, die von einem unabhängigen Softwarehändler bereitgestellt werden. Im Gegensatz zu /usr/localDingen folgen diese Pakete den Verzeichniskonventionen (oder sollten es zumindest tun). Beispielsweise someappwürde installiert werden in /opt/someapp, wobei einer seiner Befehle lautet /opt/someapp/bin/foo, seine Konfigurationsdatei wäre in /etc/opt/someapp/foo.confund seine Protokolldateien wären in /var/opt/someapp/logs/foo.access.
/usr/localeine lokale Version des/usrDateisystems ist, wohingegen/optPlatzhalter für verschiedene Dinge ist.