Warum sollte ich alles in / opt verschieben?

16

Jedes Mal, wenn ich die Tipps zur Installation eines SDK, einer IDE, einer Erweiterung usw. lese, heißt es, dass ich sie in einen /optOrdner entpacken soll . Warum muss ich das tun?

Bei der Installation von Ubuntu habe ich gelesen, dass ich nur 10-20 GiB für das /Dateisystem und den verbleibenden Speicherplatz festlegen sollte /home. Soll ich also den Speicherplatz für den Stammordner erweitern oder alles auf "" belassen /home? Gibt es da einen Unterschied?

Praytic
quelle
1
Sie haben hier zwei Fragen. Pro Beitrag ist nur eine Frage zulässig. Bitte bearbeite deinen Beitrag und wenn du möchtest, kannst du eine weitere Frage bezüglich der Größe oder des
Ausgangsordners stellen

Antworten:

20

Verstehen Sie zunächst, dass jedes Verzeichnis, das nicht explizit ein Bereitstellungspunkt für eine separate Partition (oder ein Unterverzeichnis eines solchen Bereitstellungspunkts) ist, auf der /Partition root ( ) gespeichert ist . Wenn Sie also root ( /) und /homekeine anderen Partitionen haben, ist Ihr /optVerzeichnis einfach ein Verzeichnis auf root ( /). Ebenso für /tmp, /sbinund alles andere. Daher basiert die erste Frage auf der falschen Annahme, dass Sie für jedes Verzeichnis, das von root ( /) ausgeht, separate Partitionen benötigen und daher nicht direkt beantwortet werden können.

Zweitens /optwird für Software von Drittanbietern verwendet, was im Kontext von Ubuntu vorkompilierte Software bedeutet, die nicht über Debian-Pakete verteilt wird. Gelegentlich wird eine offizielle Programmdokumentation angezeigt, auf die /optverwiesen wird, aber es gibt Debian-Pakete, die diese Dateien an anderer Stelle ablegen. In solchen Fällen sollten Sie die offizielle Dokumentation ignorieren oder zumindest die Verweise auf den Dateispeicherort ignorieren, wenn Sie das Debian-Paket verwenden. Wenn Sie die Wahl haben, ein vorkompiliertes Paket über einen Tarball oder ein Debian-Paket zu verwenden, ist es im Allgemeinen am besten, das Debian-Paket zu verwenden. Alles in allem ist die Verwendung von /optin diesen Tagen ziemlich selten. Wenn Sie immer noch der Meinung sind, dass Sie Dateien /optablegen müssen, können Sie die Software gut benennen, da die Leute hier möglicherweise wissen, ob ein Debian-Paket für diese Software verfügbar ist.

Wenn man die beiden vorherigen Punkte kombiniert, ist es sehr selten, dass Ubuntu-Installationen /optin eine separate Partition aufgeteilt werden, da dort nur selten erhebliche Datenmengen gespeichert werden. Die meisten Ubuntu-Software geht in /usrund anderen Orten. Früher war es üblich, /usrin eine separate Partition aufzuteilen , aber diese Praxis ist heute ziemlich selten. Wenn Sie eine Menge Software installieren müssen /opt, erstellen Sie möglicherweise eine separate PartitionSinn machen - aber in vielen Fällen wird dies nicht wirklich hilfreich sein. Separate Partitionen sind sinnvoll, wenn Sie die Sicherheit unterschiedlich behandeln müssen, wenn verschiedene Dateisystemfunktionen hilfreich sind, um Daten in einer Multi-Boot-Konfiguration für mehrere Betriebssysteminstallationen gemeinsam zu nutzen, und aus anderen Gründen. Eine routinemäßige Softwareinstallation profitiert wahrscheinlich nicht von einer separaten Partition. Tatsächlich kann das Erstellen einer separaten Partition für /optProbleme verursachen, wenn sich die Größe der dort gespeicherten Software ändert oder wenn die Größenschätzung anfänglich falsch ist.

Rod Smith
quelle
1
Wiederverwendung von / opt ist heutzutage ziemlich selten. Sind Sie sicher?
Pacerier
@Pacerier aus irgendeinem Grund / opt scheint zurück zu kommen, / usr / local war sicherlich vor ein paar Jahren in Ubuntu populärer. IMHO, / opt und / usr / local sind jedenfalls gleichwertig. Siehe auch linuxjournal.com/magazine/pointcounterpoint-opt-vs-usrlocal und tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html . '/ Usr / local' wird heutzutage allgemein als ein guter Ort angesehen in dem selbst kompilierte Programme oder Programme von Drittanbietern aufbewahrt werden. "
Panther
8

Machst du?

Tatsache ist, dass Sie es nicht tun müssen. Verwenden /optist eine Konvention. Ich würde es empfehlen, aber es ist nicht unbedingt erforderlich.

Aus der Linux-Dateisystemhierarchie: Kapitel 1. Linux-Dateisystemhierarchie :

1.13. / opt

Dieses Verzeichnis ist für alle Software- und Add-On-Pakete reserviert, die nicht Teil der Standardinstallation sind. Beispielsweise finden Sie hier normalerweise StarOffice-, Kylix-, Netscape Communicator- und WordPerfect-Pakete. Zur Einhaltung der FSSTND sollten alle Anwendungen von Drittanbietern in diesem Verzeichnis installiert werden. Jedes Paket, das hier installiert werden soll, muss seine statischen Dateien (z. B. zusätzliche Schriftarten, Cliparts, Datenbankdateien) in einem separaten Verzeichnisbaum (/ opt / 'package' oder / opt / 'provider') finden (ähnlich der Art und Weise) in dem Windows neue Software in seinem eigenen Verzeichnisbaum installiert (C: \ Windows \ Programmdateien \ "Programmname"), wobei "Paket" ein Name ist, der das Softwarepaket beschreibt, und "Anbieter" der LANANA-registrierte Name des Anbieters ist.

Obwohl die meisten Distributionen es versäumen, die Verzeichnisse / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib und / opt / man zu erstellen, sind sie für die Verwendung durch lokale Systemadministratoren reserviert. Pakete können "Front-End" -Dateien bereitstellen, die vom Systemadministrator in diese reservierten Verzeichnisse gestellt (durch Verknüpfen oder Kopieren) werden sollen, müssen jedoch ohne diese reservierten Verzeichnisse normal funktionieren. Von Benutzern aufzurufende Programme befinden sich im Verzeichnis / opt / 'package' / bin. Wenn das Paket UNIX-Handbuchseiten enthält, befinden sie sich in / opt / 'package' / man, und es muss dieselbe Unterstruktur wie in / usr / share / man verwendet werden. Paketdateien, die variabel sind, müssen in / var / opt installiert werden. Hostspezifische Konfigurationsdateien werden in / etc / opt installiert.

Unter keinen Umständen dürfen andere Paketdateien außerhalb der Hierarchien / opt, / var / opt und / etc / opt existieren, mit Ausnahme der Paketdateien, die sich an bestimmten Speicherorten in der Dateisystemstruktur befinden müssen, um ordnungsgemäß zu funktionieren. Zum Beispiel Gerätesperrdateien in / var / lock und Geräte in / dev. Distributionen dürfen Software in / opt installieren, jedoch keine Software ändern oder löschen, die vom lokalen Systemadministrator ohne die Zustimmung des lokalen Systemadministrators installiert wurde.

Die Verwendung von / opt für Add-On-Software ist in der UNIX-Community eine gängige Praxis. Die binäre System-V-Anwendungsschnittstelle [AT & T 1990], die auf der System-V-Schnittstellendefinition (Third Edition) und dem Intel Binary Compatibility Standard v. 2 (iBCS2) basiert, bietet eine / opt-Struktur, die der hier definierten sehr ähnlich ist.

Im Allgemeinen müssen alle Daten, die zur Unterstützung eines Pakets auf einem System erforderlich sind, in / opt / 'package' vorhanden sein, einschließlich der Dateien, die in / etc / opt / 'package' und / var / opt / 'package' kopiert werden sollen reservierte Verzeichnisse in / opt. Die geringfügigen Einschränkungen für Distributionen mit / opt sind erforderlich, da Konflikte zwischen der installierten und der lokal installierten Software der Distribution auftreten können, insbesondere bei festen Pfadnamen, die in einigen Binärprogrammen vorkommen.

Die Struktur der Verzeichnisse unter / opt / 'provider' bleibt dem Packager der Software überlassen. Es wird jedoch empfohlen, Pakete in / opt / 'provider' / 'package' zu installieren und die Richtlinien für zu befolgen / opt / package. Ein gültiger Grund für die Abweichung von dieser Struktur sind Support-Pakete, bei denen möglicherweise Dateien in / opt / 'provider' / lib oder / opt / 'provider' / bin installiert sind.

Torrien
quelle
Das ist seltsam, weil die meisten Leute empfehlen, kleinen Speicherplatz in das Root-Verzeichnis zu teilen, und ich dachte, es wird nicht viel geändert. Es scheint, dass ich diese Ratschläge daran erinnern muss, die Konventionen zu befolgen?
Praytic
2
@Praytic Nicht wirklich. In der Vergangenheit /optwar oft ein separater Antrieb. Es wurde verwendet, um proprietäre Software zu installieren, die aufgrund der Bündelung aller erforderlichen Bibliotheken und anderer Ressourcen häufig einen enormen Speicherplatzbedarf aufwies. In der heutigen Zeit sind Laufwerke so groß, dass es machbar und einfacher ist, nur einen Stamm auf einem einzelnen Laufwerk zu verwenden.
Bain
4

/optwird für (manchmal proprietäre) externe Anwendungen verwendet, die nicht Teil der Linux-Distribution sind. Diese Anwendungen verfügen möglicherweise über fest codierte Pfade und werden daher nur dann ordnungsgemäß ausgeführt, wenn sie installiert /optsind. Wenn jedoch keine fest codierten Pfade vorhanden sind, können Sie sie auf einem beliebigen Pfad installieren. Ein Programm, in dem installiert /optist, soll in sich geschlossen sein.

Der Hauptgrund für die Verwendung /optbesteht darin, einen gemeinsamen Standardpfad bereitzustellen, in dem externe Software installiert werden kann, ohne den Rest des installierten Systems zu beeinträchtigen. /optwird nicht in Standard-Compiler- oder Linker-Pfaden ( gcc -print-search-dirsoder /etc/ld.so.confÄhnlichem) angezeigt, daher sind die dort installierten Header und Bibliotheken etwas vom Hauptsystem isoliert und sollten bereits installierte Programme nicht beeinträchtigen.

Die Verwendung von /optwird durch den Dateisystem-Hierarchie-Standard : / opt festgelegt , der feststellt, dass es sich /optursprünglich um Unix handelt.

/ opt: Add-On-Anwendungssoftwarepakete

Zweck

/ opt ist für die Installation von Add-On-Anwendungssoftwarepaketen reserviert.

Ein Paket, das in / opt installiert werden soll, muss seine statischen Dateien in einem separaten Verzeichnisbaum / opt / <package> oder / opt / <provider> finden, wobei <package> ein Name ist, der das Softwarepaket beschreibt, und <provider> der Name LANANA-registrierter Name des Anbieters.

Bedarf

Die Verzeichnisse / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib und / opt / man sind für die Verwendung durch den lokalen Systemadministrator reserviert. Pakete können "Front-End" -Dateien bereitstellen, die vom lokalen Systemadministrator in diese reservierten Verzeichnisse gestellt (durch Verknüpfen oder Kopieren) werden sollen, müssen jedoch ohne diese reservierten Verzeichnisse normal funktionieren.

Programme, die von Benutzern aufgerufen werden sollen, müssen sich im Verzeichnis / opt / <package> / bin oder in der Hierarchie / opt / <provider> befinden. Wenn das Paket UNIX-Handbuchseiten enthält, müssen sie sich in / opt / <package> / share / man oder in der Hierarchie / opt / <provider> befinden und dieselbe Unterstruktur wie / usr / share / man muss verwendet werden.

Paketdateien, die variabel sind (Änderung im normalen Betrieb), müssen in / var / opt installiert werden. Weitere Informationen finden Sie im Abschnitt zu / var / opt.

Hostspezifische Konfigurationsdateien müssen in / etc / opt installiert werden. Weitere Informationen finden Sie im Abschnitt über / etc.

Außer den Paketdateien, die sich an bestimmten Speicherorten in der Dateisystemstruktur befinden müssen, um ordnungsgemäß zu funktionieren, dürfen keine anderen Paketdateien außerhalb der Hierarchien / opt, / var / opt und / etc / opt vorhanden sein. Beispielsweise müssen sich die Gerätesperrdateien in / var / lock und die Geräte in / dev befinden.

Distributionen dürfen Software in / opt installieren, jedoch keine Software ändern oder löschen, die vom lokalen Systemadministrator ohne die Zustimmung des lokalen Systemadministrators installiert wurde.

Begründung

Die Verwendung von / opt für Add-On-Software ist in der UNIX-Community weit verbreitet. Die Binärschnittstelle für System V-Anwendungen [AT & T 1990], die auf der System V-Schnittstellendefinition (Third Edition) basiert, bietet eine / opt-Struktur, die der hier definierten Struktur sehr ähnlich ist.

Der Intel Binary Compatibility Standard v. 2 (iBCS2) bietet auch eine ähnliche Struktur für / opt.

Im Allgemeinen müssen alle Daten, die zur Unterstützung eines Pakets auf einem System erforderlich sind, in / opt / <Paket> vorhanden sein, einschließlich der Dateien, die in / etc / opt / <Paket> und / var / opt / <Paket> kopiert werden sollen reservierte Verzeichnisse in / opt.

Die geringfügigen Einschränkungen für Distributionen, die / opt verwenden, sind erforderlich, da Konflikte zwischen verteilungsinstallierter und lokal installierter Software möglich sind, insbesondere bei festen Pfadnamen, die in einigen Binärprogrammen vorkommen.

Die Struktur der Verzeichnisse unter / opt / <Anbieter> bleibt dem Paketverwalter der Software überlassen. Es wird jedoch empfohlen, Pakete in / opt / <Anbieter> / <Paket> zu installieren und die Richtlinien für zu befolgen / opt / package. Ein gültiger Grund für die Abweichung von dieser Struktur sind Support-Pakete, bei denen möglicherweise Dateien in / opt / <Anbieter> / lib oder / opt / <Anbieter> / bin installiert sind.

bain
quelle
3

Es ist nichts Heiliges daran /opt, es ist nur übliche Praxis, vorkompilierte Software, die für alle Benutzer eines Systems zugänglich sein sollte, in dieses Verzeichnis zu stellen. Wenn Sie der einzige Benutzer des Systems sind, ist es überhaupt nicht falsch, es in Ihr Home-Verzeichnis zu extrahieren. Und selbst wenn auf dem System mehrere Benutzer Zugriff auf diese Software benötigen, Sie jedoch den Speicherplatz auf Ihrer /homePartition nutzen möchten , ist es kein Problem, ein öffentlich zugängliches /home/softwarenameVerzeichnis zu erstellen und Ihre Software dort zu extrahieren (der einzige Nachteil ist, wenn Sie dies tun) Um einen Benutzer mit einem Namen zu versehen softwarename, können Sie ihn nicht im Home-Verzeichnis des Benutzers verwenden.

fkraiem
quelle
2

Die detaillierten Antworten sind sehr gut, aber (abgesehen von Software, die möglicherweise fest codierte absolute Pfade enthält - nicht die beste Programmierpraxis), ist der Hauptpunkt, dass Nicht-System- / Nicht-Distributions-Software nicht gemischt mit dem gespeichert werden sollte reguläre Systemdateien.

Dinge reinstellen /optoder /usr/localsauberer und sicherer halten.

Insbesondere bestimmt Ihr Software-Suchpfad ($ PATH) die Reihenfolge, in der nach Orten gesucht wird, wenn Sie nach einem Programm mit einem bestimmten Namen suchen, das ausgeführt werden soll. Normalerweise stehen Orte wie /optund /usr/localam Ende der Liste.

Wenn Sie ein Paket installieren, in dem ein Programm namens enthalten cpist, wird in der mit Ihrer Distribution gelieferten Standard-Suchreihenfolge die normale Reihenfolge gefunden, da das Verzeichnis, in dem es gespeichert ist, vor Orten wie durchsucht wird /opt.

Wenn es nicht so funktioniert hat, wer weiß, was eine Sicherheitslücke aufbrechen oder öffnen könnte, wenn ein Programm mit dem Namen cp, das etwas anderes tut, ausgeführt wird, wenn Sie glauben, nur einige Dateien zu kopieren.

Wenn so etwas passiert, kann es eine Weile dauern, bis jemand denkt, einen Befehl wie type cp(der möglicherweise nicht einmal ausreicht, um zu zeigen, dass etwas nicht stimmt) auszuführen, um herauszufinden, dass das, was ausgeführt wird, nicht das ist, was Sie denken. Bis dahin stecken Sie fest bei "Alles ist genau so, wie es sein sollte, abgesehen von dem kleinen Detail, dass es nicht funktioniert!"

Dies hilft im Grunde, unerwartete Ereignisse zu vermeiden und Situationen zu vermeiden, in denen Systemupdates einige oder alle Ihrer "benutzerdefinierten" installierten Pakete entfernen oder ersetzen. Umgekehrt können einige "benutzerdefinierte" Programme vom System bereitgestellte Programme überschreiben, auf die sich viele andere Programme oder Skripte stützen.

Aus administrativer Sicht versetzt das Mischen von "System" und "optionalen" Programmen / Dateien an denselben Orten Ihr System in einen "undefinierten" oder zumindest "mehrdeutigen" Zustand.

Wenn Sie ein Problem mit Ihrem System oder einem Programm haben und Hilfe benötigen, lautet eine der ersten Fragen: "Was haben Sie geändert?" und "Können wir einige dieser Änderungen vorübergehend deaktivieren, damit wir wissen, dass wir das eigentliche Problem betrachten und nicht nur ein Symptom für etwas anderes."

Durch getrennte Speicherorte können diese Änderungen schnell identifiziert werden. Sie müssen lediglich (zumindest für die Programme selbst) die Verzeichnisse vorübergehend aus dem Pfad entfernen.

Joe
quelle