Verwendung der Verzeichnisse / opt und / usr / local im Kontext eines PCs

65

Was ist der Unterschied zwischen /optund /usr/localVerzeichnissen und welche Art von Programmen sollten auf ihnen installiert werden?

Ich habe auf die Linux-Dateisystemhierarchie Bezug genommen, aber die Erklärung ist nicht so klar. Laut obigem Link;

/opt : - Dieses Verzeichnis ist für alle Software- und Add-On-Pakete reserviert, die nicht Teil der Standardinstallation sind

/usr/local: - Die /usr/localHierarchie wird vom Systemadministrator bei der lokalen Installation der Software verwendet. Es muss sicher sein, dass es beim Aktualisieren der Systemsoftware nicht überschrieben wird.

In welchem ​​Verzeichnis sollte bei einem PC ohne Netzwerkcomputer eine Software installiert werden, auf die mehrere lokale Benutzer zugreifen können? (zB wo soll ich eine Software wie netbeans installieren)

Danke

Niroshan
quelle
4
Google Chrome optverwendet dieses Verzeichnis aus irgendeinem Grund.
Camilo Martin
2
@CamiloMartin Ich denke, es ist optional.
Becko
4
@becko Nun, es muss eine optunschlagbare Wahl sein, wenn Google optes ankündigt .
Camilo Martin
3
Auch wenn alles in Ordnung ist, optklingt imus Prime besser.
erm3nda
2
Lol..Ich bin zu spät zur Party gekommen. Aber es scheint, als hätten optSie den Kommentarbereich viel
nachgeahmt

Antworten:

71

/optist für Anwendungen von Drittanbietern gedacht, die sich nicht auf Abhängigkeiten stützen, die nicht im Lieferumfang enthalten sind. /usr/localgilt für Pakete, die auf diesem Computer installiert sind und nicht im Bereich des Distributionspaket-Managers enthalten sind.

Ein Beispiel:

Ein Open-Source-SIP-Client, der als .deb geliefert wird, würde in installiert /usr. Wenn es mit dem Qt-Framework erstellt wurde, würde apt es als Abhängigkeit einbinden.

Derselbe Open-Source-SIP-Client, der aus dem Quellcode erstellt wurde, befindet sich in, /usr/localsodass er nicht von Apt durcheinander gebracht wird, wenn Sie später ein .deb-Paket für dieselbe Anwendung installieren. Sie können die Abhängigkeiten entweder aus dem Quellcode erstellen oder vom Paketmanager abrufen.

Eine Drittanbieteranwendung in /optsoll in sich geschlossen sein. Zum Beispiel würde ein proprietärer sip-client, der Qt verwendet, sich nicht auf die Version von apt verlassen, sondern diese gebündelt oder statisch verknüpft haben.

Weitere Informationen finden Sie im Filesystem Hierarchy Standard .

Egil
quelle
1
also geht netbeans nach / usr / local, da es von jdk und anderen compilern abhängt + plus folgt es linux FHS?
Niroshan
1
Die Antwort ist ja.
Egil
1
Wenn ich condawie hier vorgeschlagen global installieren möchte , ist dies /optder richtige Ort?
Alexey
@Egil, warum hat Mac kein opt-Verzeichnis?
Pacerier
Ich habe diese Antwort zuvor positiv bewertet, aber jetzt sehe ich, dass die Schlussfolgerungen geringfügig von diesem Artikel im Linux-Journal abweichen . Der Artikel impliziert, dass es bei gepackter Software darauf ankommt, wer das Paket geliefert hat . Wenn das Paket aus dem Paket Repo - O ist, dann sollte es unter installiert werden /usr(oder vermutlich sogar direkt unter /bin, /libusw.) wie gewohnt. Wenn es jedoch aus einer anderen Quelle stammt, sollte es in gestellt werden /usr/local. Das würde möglicherweise den "Open Source SIP-Client" .debin die Antwort einbeziehen.
Sampablokuper
12

Ich würde nur Binärpakete von Drittanbietern installieren /opt.

Alles, was du selbst aus der Quelle baust, würde ich einbauen /usr/local.

netbeansist in den Ubuntu Repos. Benötigen Sie eine bestimmte Version?

Broam
quelle
Gibt es Gründe dafür oder ist es nur eine gute Praxis? (Ich erwähnte Netbeans als Beispiel - ich habe diesen Teil geändert, um alle Unklarheiten zu beseitigen). Vielen Dank
Niroshan
Ich denke, andere Antworten haben es am besten gesagt. Normalerweise sind Binärdateien von Drittanbietern in sich geschlossen.
Broam
Was ist mit laufzeitabhängigen Dingen wie Python- oder Java-Software? Ich würde sie anziehen, bin mir /optaber nicht sicher, ob es richtig ist.
Camilo Martin
8

Auf die Verpackung kommt es an. Wenn etwas auf LHS-Weise gepackt ist (ausführbare Dateien in bin / libraries in lib / etc. ablegen), sollte es in / usr / local abgelegt werden.

Wenn etwas ein oberstes Verzeichnis hat und diesem Modell nicht folgt, wird es in / opt abgelegt. Im Allgemeinen müssen Sie explizit Sachen in / opt zu Ihrem PATH hinzufügen.

Siehe auch Diese Frage zum Superuser

BAUM
quelle
Diese Antwort scheint durch diesen Artikel im Linux-Journal bestätigt zu werden .
sampablokuper