Ich verwende viele Open-Source-Anwendungen, darunter Java und Tomcat. Bei den meisten Anweisungen werden meine Anwendungen anscheinend über das /var
Verzeichnis ausgeführt. Aber hin und wieder sehe ich auch das /opt
Verzeichnis. Während ich dabei bin, sehe ich auch /usr/local/
und auch /etc
.
Wann sollte ich Anwendungen in dem einen oder anderen Ordner installieren? Gibt es Vor- und Nachteile von jedem? Hat das etwas mit der Historie zu tun (Solaris vs Linux oder Red Hat vs Ubuntu)?
linux
installation
Trevor Allred
quelle
quelle
Antworten:
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, sbin nur für Administratoren./usr/bin
&/usr/sbin
sind nicht für lebenswichtige Programme, sbin nur für Administratoren;/var
ist für lebende Daten für Programme. Dies können Cache-Daten, Spool-Daten, temporäre Daten (sofern nicht vorhanden/tmp
, die bei jedem Neustart gelöscht werden) usw. sein./usr/local
ist für lokal installierte Programme. In der Regel werden hier Programme gehostet, die den Standards entsprechen, jedoch nicht für das Betriebssystem gepackt wurden, sondern vom Administrator manuell (z. B. mithilfe von./configure && make && make install
) sowie über Administratorskripts installiert werden ./opt
ist für Programme, die nicht gepackt sind und nicht den Standards entsprechen. Sie haben einfach alle Bibliotheken zusammen mit dem Programm dort abgelegt. Es ist oft eine schnelle und schmutzige Lösung, aber es kann 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 Ihren eigenen Pfad (z. B./opt/yourcompany
) darin erstellen. In diesem Fall wird empfohlen, 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,
/srv
kann dies auch ein guter Ort für sie sein. Beispielsweise bevorzuge ich die Verwendung/srv/www
für Websites, anstatt/var/www
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 Distributionen. Zum Beispiel verwenden RedHat-Systeme
libexec
Verzeichnisse, wenn dies auf Debian / Ubuntu-Systemen nicht der Fall ist .Das FHS wird hauptsächlich von Linux-Distributionen verwendet (ich kenne eigentlich kein anderes Betriebssystem, das wirklich dazu passt). Andere Unix-Systeme folgen dem nicht. Beispielsweise werden BSD-Systeme in der Regel
/usr/local
für Paketprogramme verwendet, was bei Linux nicht der Fall ist. Solaris hat sehr unterschiedliche Standardpfade.Ich empfehle Ihnen nachdrücklich, das oben verlinkte FHS-Dokument zu lesen, wenn Sie mehr darüber erfahren möchten.
quelle
/srv
. Ich war auf der Suche nach einem Platz für meine Git-Repositories und mochte meinen Apache-Inhalt nicht/var/www
./srv
scheint der perfekte Ort zu sein.var
stattdata
?/var
dass es sich um "verschiedene Daten" handelt. In den Anfängen wurde Unix auf einer einzigen Festplatte gehostet. Als es nicht genug war, haben sie ein neues bekommen, es gemountet/usr
und alle Benutzerdaten dorthin verschoben. Aber es war nicht genug und die alte Festplatte war bald wieder voll. Also haben sie alle Binärdateien, ohne die das System booten könnte, von/bin
nach verschoben/usr/bin
. Sie haben einfach keinen Platz mehr. Später mussten sie Daten zwischen den Benutzern austauschen, um sie zu erstellen/var
und als Ablagebox zu verwenden. FHS steckt voller solcher Legacy-Entscheidungen und sollte mit einer Prise Salz getroffen werden.opt
steht für optionale Software.var
steht für variable Systemdateien. Daher sollten Ihre Bewerbungen an gehen/opt
.quelle
/var
ist für verschiedene Systemdateien, nicht "verschiedene"./var
dass es sich um "verschiedene Daten" handelt. Ich habe noch Notizen aus einem Vor-Internet-Buch, das ich damals gelesen habe.Es hängt davon ab, was Ihr lokaler Standard ist.
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.
quelle
/usr
. Dynamisch generierte libs kann bis in enden/var/lib
gelegentlich, aber ich sehe nicht , was Sie tatsächlich würde installieren in/var
, von einem Admin Sicht. Das Programm verwendet es möglicherweise ausgiebig, es sollte jedoch ziemlich leer sein, bevor Sie es starten.