GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Der Unterschied zwischen /opt und /usr/local?

Gemäß dem Filesystem Hierarchy Standard ist /opt ist für „die Installation von Add-On-Anwendungssoftwarepaketen“. /usr/local ist „zur Verwendung durch den Systemadministrator bei der lokalen Installation von Software“. Diese Anwendungsfälle scheinen ziemlich ähnlich zu sein. Software, die nicht in Distributionen enthalten ist, wird normalerweise standardmäßig so konfiguriert, dass sie entweder in /usr/local installiert wird oder /opt ohne besonderen Reim oder Grund, was sie gewählt haben.

Gibt es einen Unterschied, den ich übersehe, oder machen beide dasselbe, existieren aber aus historischen Gründen?

Akzeptierte Antwort:

Während beide darauf ausgelegt sind, Dateien zu enthalten, die nicht zum Betriebssystem gehören, ist /opt und /usr/local sollen nicht denselben Satz von Dateien enthalten.

/usr/local ist ein Ort, an dem vom Administrator erstellte Dateien installiert werden können, normalerweise unter Verwendung von make Befehl (z. B. ./configure; make; make install ). Die Idee ist, Konflikte mit Dateien zu vermeiden, die Teil des Betriebssystems sind, die sonst entweder überschrieben würden oder die lokalen überschreiben würden (z. B. /usr/bin/foo ist Teil des Betriebssystems, während /usr/local/bin/foo ist eine lokale Alternative).

Alle Dateien unter /usr können von Betriebssysteminstanzen gemeinsam genutzt werden, obwohl dies bei Linux selten der Fall ist. Dies ist ein Teil, wo der FHS leicht widersprüchlich ist, wie /usr ist als schreibgeschützt definiert, aber /usr/local/bin muss schreibgeschützt sein, damit die lokale Softwareinstallation erfolgreich ist. Der SVR4-Dateisystemstandard, der die Hauptinspirationsquelle der FHS war, empfiehlt, /usr/local zu vermeiden und verwenden Sie /opt/local stattdessen um dieses Problem zu lösen.

/usr/local ist ein Vermächtnis des ursprünglichen BSD. Der damalige Quellcode von /usr/bin OS-Befehle befanden sich in /usr/src/bin und /usr/src/usr.bin , während die Quelle lokal entwickelter Befehle in /usr/local/src lag , und ihre Binärdateien in /usr/local/bin . Es gab keine Vorstellung von Verpackung (außerhalb von Tarballs).

Andererseits /opt ist ein Verzeichnis zum Installieren ungebündelter Pakete (d. h. Pakete, die nicht Teil der Betriebssystem-Distribution sind, aber von einer unabhängigen Quelle bereitgestellt werden), jedes in einem eigenen Unterverzeichnis. Sie sind bereits fertige Gesamtpakete, die von einem unabhängigen Drittanbieter von Software bereitgestellt werden. Im Gegensatz zu /usr/local Sachen, folgen diese Pakete den Verzeichniskonventionen (oder sollten es zumindest tun). Beispiel:someapp würde in /opt/someapp installiert werden , wobei einer der Befehle /opt/someapp/bin/foo ist , wäre seine Konfigurationsdatei in /etc/opt/someapp/foo.conf , und seine Protokolldateien in /var/opt/someapp/logs/foo.access .


Linux
  1. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  2. Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

  3. Unterschied zwischen /bin und /usr/bin

  4. Was ist der Unterschied zwischen /tmp und /run?

  5. Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?

/usr/bin vs. /usr/local/bin Unter Linux?

Bash =~ Regex und Https://regex101.com/?

Der Unterschied zwischen „$ . Foo‘ und ‚$ ./foo‘??

Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

Unterschied zwischen /var/log/messages, /var/log/syslog und /var/log/kern.log?

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen