Paket erstellen - 4. Dateisystem-Layout
Die folgenden Richtlinien für das Layout der Dateiverzeichnisse sind Bestandteil der Paket-Richtlinien von Fink.
4.1 Hierarchie-Standard für Dateiverzeichnisse
Fink folgt dem Geist des
Hierarchie-Standards für
Dateiverzeichnisse, abgekürzt als FHS (Filesystem Hierarchy Standard).
Es kann diesen Standard nur nachempfinden, denn er setzt die Kontralle über
/
und /usr
voraus.
Fink ist aber ein Zusatz, der nur die Kontrolle über sein eigenes
Installationsverzeichnis hat. Die Beispiele verwenden den voreingestellten
Präfix /opt/sw
.
4.2 Die Verzeichnisse
Dateien sollten in den Verzeichnissen wie folgt abgespeichert werden:
Field | Value |
---|---|
/opt/sw/bin |
Dieses Verzeichnis ist für allgemeine ausführbare Programme. Es hat keine weiteren Unterverzeichnisse. |
/opt/sw/sbin |
Dieses Verzeichnis ist für Programme, die nur von Administratoren ausgeführt werden. Daemon-Programme, die im Hintergrund laufen, gehören hier her. Es hat keine weiteren Unterverzeichnisse. |
/opt/sw/include |
Dieses Verzeichnis ist für C und C++ Header-Dateien. Unterverzeichnisse können je nach Bedarf angelegt werden. Installiert ein Paket Header-Dateien, die mit Standard C Header-Dateien verwechselt werden könnten, müssen diese Header-Dateien in ein Unterverzeichnis. |
/opt/sw/lib |
Dieses Verzeichnis ist für Daten-Dateien und Bibliotheken, die von der
Architektur abhängen.
Statische und dynamische Bibliotheken gehören direkt in
Ein Paket darf Unterverzeichnisse für private Daten oder ladbare Module anlegen.
Achten sie darauf, dass die Namen der Unterverzeichnisse sinnvoll sind und der
Kompatibilität dienen.
Es ist durchaus sinnvoll, den Namen des Verzeichnisses umd die Hauptversion des
Pakets zu erweitern oder zusätzliche Unterverzeichnisse einzufügen, z. B.
|
/opt/sw/lib/ppc64
/opt/sw/lib/x86_64 |
Dieses Verzeichnis ist für 64-bit-Bibliotheken auf 32-bit-Systemen, mit
|
/opt/sw/share |
Dieses Verzeichnis ist für architektur-unabhängige Daten-Dateien. Es gelten
die selben Regeln wie für |
/opt/sw/share/man |
Dieses Verzeichnis enthält Dokumentationen als man-Pages.
Es ist weiter in die üblichen Abschnitte unterteilt.
Zu jedem Programm in |
/opt/sw/share/info |
Dieses Verzeichnis enthält Dokumentationen im Info format (erstellt aus
Texinfo Quellen).
Die Pflege der Datei |
/opt/sw/share/doc |
Dieses Verzeichnis enthält Dokumentationen, die weder als man-Page noch als
Info-Dokument vorliegen.
Die Dateien README, LICENSE und COPYING gehören z. B. hier her.
Jedes Paket muss hier sein eigenes Unterverzeichnis anlegen, das wie das Paket
benannt wird.
Die Namen der Unterverzeichnisse dürfen keine Versionsnummern enthalten, außer
wenn diese Nummern Teil des tatsächlichen Paketnamens sind.
Tipp: Verwenden sie einfach |
/opt/sw/share/locale |
Dieses Verzeichnis enthält Kataloge mit Meldungen für die Internationalisierung. |
/opt/sw/opt |
In Verzeichnis |
/opt/sw/var |
Im Verzeichnis |
/opt/sw/etc |
Diese Verzeichnis enthält Konfigurationsdateien. Gehören zu einem Paket mehr als ein oder zwei Dateien, sollte ein Unterverzeichnis angelegt werden. Der Name des Unterverzeichnis muss den Namen des Pakets oder Programms enthalten, damit es zugeordnet werden kann. |
/opt/sw/src |
In diesem Verzeichnis werden die Quell-Dateien gespeichert und erfolgt die Codeerstellung. Vom den Paketen sollte hier nicht weiter installiert werden. |
/opt/sw/Applications |
In diesem Verzeichnis werden Programm mit einer graphischen Oberfläche im Stil von OS X abgespeichert, die man normalerweise mit einem Doppelklick startet und nicht von der Kommandozeile. |
/opt/sw/Library/Frameworks |
In diesem Verzeichnis werden Frameworks im OS X-Stil abgespeichert. Sie werden manchmal von Programmen im OS X-Stil genutzt. |
4.3 Was sollte man vermeiden?
Außer den oben genannten Unterverzeichnissen sollte es keine anderen im
Verzeichnis /opt/sw
geben.
Insbesondere die folgenden sind explizit nicht erlaubt:
/opt/sw/man
, /opt/sw/info
,
/opt/sw/doc
, /opt/sw/libexec
und
/opt/sw/lib/locale
.
Weiter: 5. Compiler