it-swarm.com.de

Soll ich Linux-Anwendungen in / var oder / opt installieren?

Ich führe viele Open-Source-Anwendungen aus, darunter Java und Tomcat. Es scheint, als würden die meisten Anweisungen meine Anwendungen aus dem Verzeichnis /var Ausführen. Aber hin und wieder auch siehe das Verzeichnis /opt. Während ich dabei bin, sehe ich auch /usr/local/ und sogar /etc.

Wann sollte ich Anwendungen in dem einen oder anderen Ordner installieren? Gibt es Vor- und Nachteile von jedem? Hat es mit der Geschmacksgeschichte zu tun (Solaris vs Linux oder Red Hat vs Ubuntu)?

86
Trevor Allred

Der Standard für diese Probleme ist der File Hierarchy Standard . Es ist ein ziemlich großes Dokument. Grundsätzlich (und sehr grob) lauten die Standardpfade unter Linux:

  • /bin & /sbin Sind für wichtige Programme für das Betriebssystem vorgesehen, sbin nur für Administratoren.
  • /usr/bin & /usr/sbin Sind für nicht wichtige Programme, sbin nur für Administratoren;
  • /var Ist für lebende Daten für Programme. Dies können Cache-Daten, Spooldaten, temporäre Daten sein (es sei denn, sie befinden sich in /tmp, Die bei jedem Neustart gelöscht werden) usw .;
  • /usr/local Gilt für lokal installierte Programme. In der Regel werden Programme gehostet, die den Standards entsprechen, jedoch nicht für das Betriebssystem gepackt wurden, sondern vom Administrator manuell installiert wurden (z. B. ./configure && make && make install), Sowie Administratorskripte.
  • /opt Gilt für Programme, die nicht gepackt sind und nicht den Standards entsprechen. Sie haben dort einfach alle Bibliotheken zusammen mit dem Programm zusammengestellt. Es ist oft eine schnelle und schmutzige Lösung, kann aber auch für Programme verwendet werden, die von Ihnen selbst erstellt wurden und für die Sie einen bestimmten Pfad haben möchten. Sie können darin Ihren eigenen Pfad (z. B. /opt/yourcompany) Erstellen. In diesem Fall werden Sie aufgefordert, ihn als Teil der Standardpfade zu registrieren.
  • /etc Sollte keine Programme enthalten, sondern Konfigurationen.

Wenn Ihre Programme spezifisch für die vom Dienst bereitgestellten Dienste sind, kann /srv Auch ein guter Ort für sie sein. Zum Beispiel bevorzuge ich die Verwendung von /srv/www Für Websites anstelle von /var/www, Um sicherzustellen, dass das Verzeichnis nur Daten enthält, die ich selbst hinzugefügt habe, und nichts, was aus Softwarepaketen stammt.

Es gibt einige Unterschiede zwischen den Verteilungen. Beispielsweise verwenden RedHat-Systeme libexec -Verzeichnisse, wenn Debian/Ubuntu-Systeme dies nicht tun.

Das FHS wird hauptsächlich von Linux-Distributionen verwendet (ich kenne eigentlich kein anderes Betriebssystem, das dem wirklich entspricht). Andere Unix-Systeme folgen dem nicht. Beispielsweise verwenden BSD-Systeme in der Regel /usr/local Für gepackte Programme, was bei Linux nicht der Fall ist. Solaris hat sehr unterschiedliche Standardpfade.

Ich empfehle Ihnen dringend, das oben verlinkte FHS-Dokument zu lesen, wenn Sie mehr darüber erfahren möchten.

138
ℝaphink

opt steht für optionale Software. var steht für variable Systemdateien. Daher sollten Ihre Bewerbungen zu /opt Gehen.

5
Eduard Wirch

Dies hängt von Ihrem lokalen Standard ab.

Persönlich installiere ich nichts ohne guten Grund in/var. Mein/usr/local ist fast immer ein NFS-Mount außerhalb des Netzwerks, sodass alles, was nicht gepackt ist, in/opt installiert wird.

3