Ich verstehe, dass sowohl unter Windows als auch unter Linux und Unix ein Programm | eine Anwendung | Software in einem beliebigen Verzeichnis installiert werden kann. Wenn Pakete mit dem Paketsystem der Distribution installiert werden, werden die Dateien am richtigen Speicherort abgelegt.
Manchmal werden Sie bei einer Softwareinstallation aufgefordert, einen Pfad zum Ablegen von Dateien anzugeben. Wo befindet sich im Falle einer Linux-Distribution dieser Standardspeicherort ( C:\Program Files
oder ein C:\progra~1
gleichwertiger Speicherort)? Ist es für verschiedene Distributionen unterschiedlich? Wenn ja, wo wäre dies RHEL
, Suse
und Ubuntu
?
Es gibt kein direktes Äquivalent. Die Verzeichnisstruktur ist sehr unterschiedlich. Unter Windows haben Sie ein einziges Verzeichnis für jedes installierte Paket / jede installierte Software, das / die alle Dateien enthält, die sich auf (z
C:\Program Files\MyProgram
. B. ) beziehen . Unter Linux ist jede Software nach Dateityp und einer anderen Regel in vielen Verzeichnissen "verteilt".Als Beispiel können wir untersuchen, wo verschiedene
xscreensaver
programmbezogene Dateien installiert sind:Keine Sorge, in der Regel , wenn ein Installationsprogramm fragt , wo zu installieren , um die richtige Antwort ist eine der folgenden:
/
,/opt
,/usr
,/usr/local
Wie Sie sehen, werden alle (1) Dateien von nach einer einfachen Regel
xscreensaver
installiert/usr
: ausführbare Dateien in/usr/bin
, Handbuchseiten in/usr/share/man
, Dokumentation in/usr/share/doc/packages/PROGRAMNAME
und so weiter.Wenn ein Installationsprogramm für eine Installation fragt
prefix
, in der Regel will er den nun Basis Pfad , unter dem das Programm installieren. In meinemxscreensaver
Beispiel ist es/usr
.Als einfache Regel:
/
nur Programm enthalten, das System zu booten (wie benötigt werdenC:\windows\system32
),/usr/local
sollten die Programme enthalten , die nur auf diesem einzigartigen Computer benötigt werden,/opt
(2) alle optionalen Programme , die nicht Standard - Verzeichnisstruktur und haben/usr
alle Standard - Software .In jedem Fall gibt es einen Standard , der alle diese Regeln im Detail definiert: Dateisystem-Hierarchie-Standard
(1) Systemweite Konfigurationsdateien müssen sich in befinden
/etc
(2) ziemlich veraltet unter Linux
quelle
/opt
wird für Software von Drittanbietern/usr/local
seit geraumer Zeit vorgezogen ./usr/share
wird "Teilen" genannt, da es zwischen verschiedenen Architekturen (Dokumentation, Skripten, Bildern) geteilt wird, während/usr/lib*
es sich um architekturabhängige Dateien handelt (und nicht um ausführbare Dateien, die verwendet werden sollen/usr/bin
).USusually,
/bin
,/usr/bin
,/usr/local/bin
, oder/opt/bin
. Ich denke/usr/bin
und bin/opt/bin
den Programmdateien am nächsten, weil sie normalerweise für nicht systemkritische Binärdateien bestimmt sind, die vom Systemadministrator installiert werden, obwohl beide im Gegensatz zu Windows Programme enthalten, die mit einem Paketmanager installiert wurden. Wo/usr/local/bin
ist für Nicht-Distribution-Software./bin
ist für systemkritische Binärdateien wie/bin/sh
.quelle
/bin
,/usr/bin
,/usr/local/bin
Oder/opt/bin
. Gibt es nicht einen Standardstandort? Der Grund, den ich frage, ist, dass ich Software auf einigen VMs installiere und der Standardspeicherort für jede Partition den größten Speicherplatz hat. Ich möchte den Partitionsbereich in das Verzeichnis ändern, in das die Software normalerweise wechselt, und die Software nicht auf allen VMs anders platzieren./opt
Beispielsweise wird normalerweise proprietäre Software verwendet./usr/
ist es eine separate Partition./bin
und die/usr/bin
Diskriminierung jetzt überholt sind; historisch, systemkritische Sachen würden sein/bin
,/lib
... (direkt in der Wurzel), während/usr
(mit/usr/bin
,/usr/lib
, ...) montieren später (vielleicht über das Netzwerk) werden würde, nicht notwendig für die grundlegende Funktionalität des Systems zu sein./opt
sollte nicht beendet werden. Einige Leute dachten in der Vergangenheit, es sei eine gute Idee, einige Anwendungen an einem anderen Ort als alle anderen Apps zu haben./bin
befindet sich auf der Root-Partition. Da auf einigen Systemen der Speicherplatz auf der Root-Partition begrenzt ist, wurden nicht unbedingt erforderliche Binärdateien (dh alle Benutzeranwendungen) nach verschoben/usr/bin
.Schauen
man hier
Sie sich die "Beschreibung der Dateisystemhierarchie" an.quelle
Wie bereits erwähnt, sind die über den Paketmanager installierten Programme auf mehrere Verzeichnisse verteilt. Während die Binärdatei normalerweise gefunden wird
/usr/bin
, befinden sich die systemweiten Konfigurationsdateien in/etc
usw.Wenn eine Anwendung nicht über den Paketmanager installiert wird, sollten die Dateien an einem Ort installiert werden, an dem sie den Paketmanager nicht beeinträchtigen. Dieser Ort ist
/usr/local
.Wenn Sie nach einem Installationspfad gefragt werden, ist dies die häufigste Wahl
/usr/local/appname
quelle
Geben Sie
echo $PATH
Ihr Terminal ein, um die Pfade anzuzeigen, in denen die Shell nach einem Befehl sucht. Es wird nach einer Datei in der Reihenfolge gesucht, in der sie gedruckt wurde.quelle
Nun, Sie werden nicht alle Ihre Lösungen in
/bin
und finden,sbin
weil sie hauptsächlich Systembefehle enthalten (dh die vom System verwendeten Befehle)./usr/bin
kann idealerweise die"Program Files"
von Unix-Welt genannt werden. In Bezug auf/opt
sehr wenige Pakete, die diesen Speicherort für die Installation verwenden, gilt dies auch für Pakete, die/etc/
oder/var
als Speicherorte verwendenquelle