Unabhängig davon, welche Organisation ausgewählt wird, werden einige Dinge einfacher und einige schwieriger.
Organisieren von Dateien von Typen, dem Unix - Weg (in bin
, man
, lib/python
, ...), macht es einfacher , Dateien zu verwenden. Wenn Sie einen Befehl ausführen möchten, wissen Sie, wo Sie ihn finden, unabhängig davon, welches Paket ihn bereitstellt. Wenn Sie die Dokumentation durchsuchen möchten, ist alles an einem Ort. Wenn ein Programm ein Vim-Syntax-Hervorhebungsmodul, eine zsh-Vervollständigungsfunktion oder Python-Bindungen bereitstellt, befindet sich die entsprechende Datei an einer Stelle, an der vim / zsh / python sie finden kann.
Unix organisiert Dateien auch nach Verwendungsmustern. Konfigurationsdateien werden eingegeben /etc
, Dateien, die sich im normalen Betrieb nicht ändern /usr
, und Dateien, die sich automatisch ändern, werden eingegeben /var
. Benutzerdaten gehen unter /home
. Dies ist sehr nützlich für das Konfigurationsmanagement (verwalten Sie die Inhalte /etc
sowie die Liste der installierten Pakete). Es ist auch nützlich, Sicherungsstrategien zu definieren: Was drin ist /etc
und was von /home
entscheidender Bedeutung ist, während was drin ist, /usr
kann einfach wieder heruntergeladen werden.
Die Hauptkosten der Unix-Methode bestehen darin, dass die Installation einer Software auf viele Verzeichnisse verteilt ist. Moderne Unix-Systeme verfügen jedoch ohnehin über Paketmanager. Das Verwalten von Dateien in vielen Verzeichnissen ist bei weitem nicht die komplexeste Aufgabe (das Verfolgen von Abhängigkeiten ist sehr nützlich und schwieriger).
Vergleichen Sie das mit Windows. Windows begann ohne Paketverwaltung, und jede Anwendung erstellte irgendwo ein eigenes Verzeichnis. Alle Dateien befinden sich normalerweise in diesem Verzeichnis: Programme, statische Daten, Benutzerdaten usw. Mit Ausnahme von Bibliotheken, deren Programme ohne Berücksichtigung von Konflikten in ein gemeinsames Systemverzeichnis verschoben werden („DLL-Hölle“). Im Laufe der Zeit wurde Windows zu einem Mehrbenutzer, der die Trennung von Benutzerverzeichnissen von Systemverzeichnissen erforderte. Windows hat auch einen zentralen Ort für Konfigurationsdateien (Unix /etc
) und einige Systemdaten (Unix) erstellt/var
), die Registrierung. Dies ist eher ein historisches Artefakt, hauptsächlich aufgrund des Mangels an Paketverwaltung und der frühen Geschichte als Einzelbenutzersystem. Der Windows-Ansatz weist viele Einschränkungen auf: Softwarepakete lassen sich nicht einfach miteinander interagieren. Beispielsweise landet die meiste installierte Software nicht im Standardpfad für die Befehlssuche, sodass sie mit jeder Form von Skripten schlecht interagiert. Installateure stellen normalerweise als Sonderfall ein Menüsymbol bereit, das in einem separaten Systemverzeichnis (à la Unix!) Abgelegt wird.
Eine Einschränkung des Unix-Ansatzes besteht darin, dass die Koexistenz mehrerer Versionen eines Pakets nicht einfach möglich ist. Dies ist besonders problematisch, wenn das Paket aktualisiert wird. Eine Möglichkeit, das Beste aus beiden Welten herauszuholen, besteht darin, jedes Paket in einem eigenen Verzeichnis (einer /opt
Struktur) zu entpacken und Gesamtstrukturen symbolischer Links von Paketverzeichnissen zu einer /usr
Struktur zu erstellen . Dies ist, was Software wie Stow macht.
Zusammenfassend lässt sich sagen, dass der Unix-Ansatz die Verwendung von Dateien, die Verwaltung von Dateien und die Interaktion von Paketen erleichtert. Es erfordert eine Paketverwaltungssoftware, aber das ist trotzdem wünschenswert. Der Windows-Ansatz erleichtert die manuelle Verwaltung von Paketen, muss sich jedoch dem Unix-Modell zuwenden, um nützliche Funktionen zu erhalten.