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


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 .


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?


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


Diese Antwort scheint durch diesen Artikel im Linux-Journal bestätigt zu werden .
— sampablokuper
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.