/usr/share : Architekturunabhängige Daten

Zweck

Die /usr/share-Hierarchie ist für alle architekturunabhängigen Dateien gedacht, auf die nur lesend zugegriffen wird. [1]

Diese Hierarchie soll gemeinsam nutzbar sein von allen Architekturen unter einem Betriebssystem; also soll zum Beispiel ein Rechenzentrum ("site") mit i386-, Alpha- und PPC-Rechnern nur ein einziges /usr/share-Verzeichnis betreiben, das zentral eingebunden wird. Beachten Sie aber, dass /usr/share in der Regel nicht von verschiedenen Betriebssystemen oder verschiedenen Versionen eines Betriebssystems gemeinsam genutzt wird.

Programme oder Pakete mit Daten, die nicht verändert werden, sollten diese Daten in /usr/share (oder /usr/local/share, wenn lokal installiert) plazieren. Es wird empfohlen, dafür Unterverzeichnisse von /usr/share zu benutzen.

Spieledaten in /usr/share/games müssen rein statische Daten sein. Alle veränderbaren Dateien, wie Punkte-Dateien, Log-Dateien usw. müssen in /var/games gespeichert werden.

Anforderungen

Die folgenden Verzeichnisse oder symbolischen Links zu Verzeichnissen müssen in /usr/share vorhanden sein:

Verzeichnis Beschreibung
manOnline-Handbücher
miscVerschiedenes

Optionen

Die folgenden Verzeichnisse oder symbolischen Links zu Verzeichnissen müssen in /usr/share dann vorhanden sein, wenn auch die entsprechenden Subsysteme eingerichtet sind:

Verzeichnis Beschreibung
dictWortlisten (optional)
docVerschiedene Dokumentationen (optional)
gamesStatische Dateien für /usr/games (optional)
infoGNU-Info-System (optional)
localeLokalanpassungen (optional)
nlsNachrichtenkataloge für NLS (optional)
sgmlSGML-Daten (optional)
terminfoVerzeichnisse der Terminfo-Datenbank (optional)
tmactroff-Makros, die nicht zu groff gehören (optional)
xmlXML-Daten (optional)
zoneinfoInformation und Konfiguration zu den Zeitzonen (optional)

Es wird empfohlen, anwendungsspezifische, architekturunabhängige Verzeichnisse hier zu plazieren. Das schließt groff, perl, ghostscript, texmf, und kbd für Linux oder syscons für BSD ein. Es liegt aber im Ermessen der Distribution, sie nach /usr/lib zu plazieren (wegen Rückwärtskompatibilität). Ähnlich darf eine Distribution auch zusätzlich zu /usr/share/games eine /usr/lib/games-Hierarchie benutzen.

/usr/share/dict : Wortlisten (optional)

Zweck

Dieses Verzeichnis ist Heimat für Wortlisten des Systems. Traditionell enthält es nur die englische words-Datei, die von look(1) und anderen Rechtschreibprogrammen benutzt wird. words darf englische oder amerikanische Schreibweisen enthalten.

TippHintergrund
 

Dass hier nur Wortlisten gespeichert sind, liegt daran, dass dies die einzigen Dateien sind, die allen Rechtsschreibungs-Prüfprogrammen gemeinsam sind.

Optionen

Die folgenden Dateien oder symbolischen Links zu Dateien müssen in /usr/share/dict vorhanden sein, wenn auch die entsprechenden Subsysteme eingerichtet sind:

Datei Beschreibung
wordsListe englischer Wörter (optional)

Wo sowohl amerikanische als auch englische Schreibweisen benutzt werden, kann words auf /usr/share/dict/american-english oder /usr/share/dict/british-english verweisen.

Wortlisten anderer Sprachen dürfen unter dem englischen Namen für diese Sprache ergänzt werden, z.B. /usr/share/dict/french, /usr/share/dict/danish usw. Wenn passend für die jeweilige Sprache, sollten diese einen ISO-8859-Zeichensatz verwenden. Wenn möglich, sogar den Latin1-(ISO 8859-1)-Zeichensatz; das ist aber nicht oft möglich.

Wenn vorhanden, müssen auch weitere Wortlisten hier abgelegt werden.

/usr/share/man : Online-Handbücher ("man pages")

Zweck

Dieser Abschnitt beschreibt wie die Online-Handbücher systemweit organisiert sind. Vergleiche auch den Abschnitt über /var/cache/man.

Das primäre <Handbuch>-Verzeichnis ist /usr/share/man. Dieses enthält die Handbücher zu Kommandos und Daten in den Dateisystemen / und /usr. [2]

Online-Handbücher werden gespeichert in <Handbuch>/<Lokalanpassung>/man<Abschnitt>/<Architektur>. Eine Erklärung zu <Handbuch>, <Lokalanpassung>, <Abschnitt> und <Architektur> folgt weiter unten.

Es folgt eine Beschreibung der einzelnen Abschnitte:

  • man1: Benutzerkommandos

    Dieser Abschnitt enthält Online-Handbücher der öffentlich zugänglichen Kommandos. Das Wichtigste für einen Benutzer ist hier dokumentiert.

  • man2: Systemfunktionen

    Dieser Abschnitt dokumentiert alle Systemfunktionen (Anfragen an den Systemkern).

  • man3: Bibliotheksfunktionen

    Abschnitt 3 dokumentiert Routinen aus Programmbibliotheken, die keine direkten Systemanfragen sind. Er und Abschnitt 2 sind nur für Programmierer interessant.

  • man4: Gerätedateien

    Abschnitt 4 dokumentiert Gerätedateien, zugehörige Treiber und die verfügbare Netzunterstützung. Üblicherweise gehören dazu die Gerätedateien aus /dev und die Kernschnittstellen für Netzprotokolle.

  • man5: Dateiformate

    In Abschnitt 5 ist die Syntax vieler Datendateien dokumentiert. Darunter fallen Include-Dateien, Programmausgaben und Systemdateien. (Unter anderem die *.conf-Dateien in /etc: A.d.Ü.)

  • man6: Spiele

    Dieser Abschnitt dokumentiert Spiele, Demo- oder ganz allgemein: belanglose Programme. Darüber, wie wichtig das überhaupt ist, gehen die Meinungen auseinander.

  • man7: Verschiedenes

    Online-Handbüchern, die schwer einzuordnen sind, wurde der Abschnitt 7 zugewiesen. Hier findet man Dokumentation zu troff und anderen Textverarbeitungsmakros.

  • man8: Systemverwaltung

    Hier sind Programme dokumentiert, die der Verwalter für Betrieb und Wartung nutzt. Einzelne Programme können aber auch für den normalen Benutzer nützlich sein.

Optionen

Die folgenden Verzeichnisse oder symbolischen Links zu Verzeichnissen müssen in <Handbuch>/<Lokalanpassung> vorhanden sein - solange sie nicht leer sind: [3]

VerzeichnisBeschreibung
man1Benutzerkommandos (optional)
man2Systemfunktionen (optional)
man3Bibliotheksfunktionen (optional)
man4Gerätedateien (optional)
man5Dateiformate (optional)
man6Spiele (optional)
man7Verschiedenes (optional)
man8Systemverwaltung (optional)

Die Komponente <Abschnitt> ist die Abschnittsnummer der Online-Handbücher.

Innerhalb von /usr/share/man muss eine Struktur vorgesehen werden, die Online-Handbücher in verschiedenen Sprachen (auch gleichzeitig) unterstützt. Wichtig in dem Zusammenhang ist außer der Sprache (mit den länderspezifischen Besonderheiten) auch der Zeichensatz.

Die Benennung der Lokalanpassungs-Unterverzeichnisse von /usr/share/man basiert auf dem Anhang B des POSIX 1003.1 Standards, wo der "locale identification string" beschrieben ist - die weitestgehend akzeptierte Methode, eine kulturelle Umgebung zu kennzeichnen. Dieser <Lokalanpassung>s-Name ist definiert durch:

<Sprache>[_<Region>][.<Zeichensatz>][,<Version>]

Der Bestandteil <Sprache> muss dem Standard ISO 639 entnommen werden; das ist ein Codierung der Sprachnamen. Er ist zwei Zeichen lang und besteht aus Kleinbuchstaben.

Der Bestandteil <Region> muss, wenn möglich, aus dem 2-Zeichen-Code des Standards ISO 3166 stammen; das ist ein Code für Ländernamen. (Die meisten von Ihnen werden den 2-Zeichen-Ländercode aus der E-Mail-Adresse kennen.) Er ist zwei Zeichen lang und besteht aus Großbuchstaben. [4]

Der Bestandteil <Zeichensatz> nennt den Standard, durch den der Zeichensatz beschrieben wird. Wenn <Zeichensatz> nur eine Zahl ist, ist das die Nummer des Internationalen Standards, der den Zeichensatz beschreibt. Es wird empfohlen, eine numerische Representation zu nutzen, wenn das möglich ist (besonders die ISO Standards), ohne weitere Trennzeichen, und wenn mit Buchstaben, dann mit Kleinbuchstaben.

Ein <Version>s-Bestandteil des <Lokalanpassung>s-Names kann an den <Zeichensatz>-Bestandteil durch ein Komma getrennt angehängt werden. Das kann dazu benutzt werden, um kulturelle Unterschiede zu machen, beispielsweise zwischen der alphabetischen Sortierreihenfolge und einer systematischen Ordnung. Dieser Standard empfiehlt <Version> nur zu benutzen, wenn es wirklich notwendig ist.

Systeme, die nur eine Sprache und nur einen Zeichensatz für alle Online-Handbücher nutzen, dürfen auf den <Lokalanpassung>s-Namen verzichten und stattdessen alle Handbücher direkt unter <Handbuch> ablegen. Zum Beispiel kann ein System, das nur englische Online-Handbücher im ASCII-Zeichensatz anbietet, diese, das heißt die man<Abschnitt>-Verzeichnisse, direkt in /usr/share/man speichern. (Das ist in der Tat das traditionelle Arrangement.)

Länder, für die es einen allgemein anerkannten Standard-Zeichensatz gibt, dürfen auf den <Zeichensatz>-Bestandteil verzichten; es wird aber empfohlen, ihn trotzdem zu nutzen, insbesondere für Länder mit konkurrierenden Standards.

Beispiele:

Sprache Land Zeichensatz Verzeichnis
Englisch ASCII/usr/share/man/en
Englisch Vereinigtes Königreich ISO 8859-15/usr/share/man/en_GB
Englisch USA ASCII/usr/share/man/en_US
Französisch Kanada ISO 8859-1/usr/share/man/fr_CA
Französisch Frankreich ISO 8859-1/usr/share/man/fr_FR
Deutsch Deutschland ISO 646/usr/share/man/de_DE.646
Deutsch Deutschland ISO 6937/usr/share/man/de_DE.6937
Deutsch Deutschland ISO 8859-1/usr/share/man/de_DE.88591
Deutsch Schweiz ISO 646/usr/share/man/de_CH.646
Japanisch JapanJIS/usr/share/man/ja_JP.jis
Japanisch JapanSJIS/usr/share/man/ja_JP.sjis
Japanisch JapanUJIS (or EUC-J)/usr/share/man/ja_JP.ujis

Ganz ähnlich müssen Vorkehrungen getroffen werden für architekturabhängige Online-Handbücher, wie zum Beispiel solche zu Gerätedateien oder "Low-Level"-Kommandos für die Systemverwaltung. Diese müssen im entsprechenden <Architektur>-Unterverzeichnis des man<Abschnitt>-Verzeichnisses plaziert werden. Beispielsweise könnte ein Handbuch für das i386-spezifische "ctrlaltdel"-Kommando gespeichert sein unter /usr/share/man/<Lokalanpassung>/man8/i386/ctrlaltdel.8.

Handbücher zu Kommandos und Daten in /usr/local werden unter /usr/local/man gespeichert. Handbücher zu X11R6 stehen unter /usr/X11R6/man. Es folgt daraus, dass alle Handbuchhierarchien dieselbe Struktur haben müssen wie /usr/share/man.

Die "cat page"-Abschnitte (cat<Abschnitt>), die formatierte Handbücher enthalten, dürfen ebenfalls in den <Handbuch>/<Lokalanpassung>-Unterverzeichnissen vorhanden sein. Sie sind aber weder zwingend notwendig, noch dürfen sie anstelle der Handbücher im nroff-Format treten.

Die numerierten Abschnitte "1" bis "8" wurden traditionell definiert. Es gilt, dass die Dateinamen der Handbücher in den jeweiligen Abschnitten mit .<Abschnitt> enden.

Darüberhinaus haben einige größere Anwendungshandbücher einen Suffix zum Dateinamen. Zum Beispiel ist bei den Handbüchern des Postverteilsystems MH die Buchstaben mh an den Dateinamen angehängt. Und alle Dateinamen der X-Window-Handbücher enden mit x.

Die Regel, verschiedensprachige Handbücher in dafür vorgesehene Unterverzeichnisse von /usr/share/man zu plazieren, gilt auch für Online-Handbücher in /usr/local/man und /usr/X11R6/man. (Ebenso gilt sie - siehe weiter unten - für /var/cache/man.)

/usr/share/misc : Verschiedenes

Dieses Verzeichnis enthält verschiedene architekturunabhängige Daten, die ohne eigene Unterverzeichnisse von /usr/share auskommen.

Optionen

Die folgenden Dateien oder symbolischen Links zu Dateien müssen in /usr/share/misc vorhanden sein, wenn auch die entsprechenden Subsysteme eingerichtet sind:

Datei Beschreibung
asciiASCII-Zeichensatztabelle (optional)
magicListe "magischer Zahlen" für das Kommando file (optional)
termcapTerminal-Daten (optional)
termcap.dbTerminal-Daten (optional)

Weitere (Anwendungs-)Daten können hier erscheinen. Nach eigenem Ermessen kann die Distribution diese Daten auch nach /usr/lib schreiben. [5]

/usr/share/sgml : SGML-Daten (optional)

Zweck

/usr/share/sgml enthält architekturunabhängige Daten, die von SGML-Anwendungen benutzt werden, wie zu Beispiel Kataloge (allerdings nicht die Zentralkataloge, siehe: /etc/sgml), DTDs, Entitäten oder Formatdateien ("style sheets").

Optionen

Die folgenden Verzeichnisse oder symbolischen Links zu Verzeichnissen müssen in /usr/share/sgml dann vorhanden sein, wenn auch die entsprechenden Subsysteme eingerichtet sind:

Verzeichnis Beschreibung
docbookdocbook DTD (optional)
teitei DTD (optional)
htmlhtml DTD (optional)
mathmlmathml DTD (optional)

Andere Dateien, die sich nicht auf eine DTD beziehen, gehören in eigene Unterverzeichnisse.

/usr/share/xml : XML-Daten (optional)

Zweck

/usr/share/xml enthält architekturunabhängige Daten, die von XML-Anwendungen benutzt werden, wie zu Beispiel Kataloge (allerdings nicht die Zentralkataloge, siehe: /etc/xml), DTDs, Entitäten oder Formatdateien ("style sheets").

Optionen

Die folgenden Verzeichnisse oder symbolischen Links zu Verzeichnissen müssen in /usr/share/xml dann vorhanden sein, wenn auch die entsprechenden Subsysteme eingerichtet sind:

Verzeichnis Beschreibung
docbookdocbook XML DTD (optional)
xhtmlXHTML DTD (optional)
mathmlMathML DTD (optional)

Fußnoten

[1]

Viele dieser Dateien standen ursprünglich in /usr (man, doc) oder /usr/lib (dict, terminfo, zoneinfo).

[2]

Wie man sehen kann, gibt es keine Online-Handbücher in /, denn sie werden weder für den Systenstart noch im Notfall gebraucht. Wirklich!

[3]

Hat beispielsweise /usr/share/man/de keine Handbücher in Abschnitt 4 (Gerätedateien), so darf /usr/share/man/de/man4 fehlen.

[4]

Eine wichtige Ausnahme bildet das Vereinigte Königreich, für welches im Standard ISO 3166 als Code 'GB' steht. Die meisten britischen E-Mail-Adressen aber enthalten das Kürzel 'UK'.

[5]

Solche Dateien sind etwa: airport, birthtoken, eqnchar, getopt, gprof.callg, gprof.flat, inter.phone, ipfw.samp.filters, ipfw.samp.scripts, keycap.pcvt, mail.help, mail.tildehelp, man.template, map3270, mdoc.template, more.help, na.phone, nslookup.help, operator, scsi_modes, sendmail.hf, style, units.lib, vgrindefs, vgrindefs.db, zipcodes.