Orte im Dateisystem

Florian Diesch diesch at spamfence.net
Don Jul 31 16:04:28 BST 2008


Christian Buhtz <exsudat at gmx.de> wrote:

> Ich habe ne kleine selbstgeschriebenen Anwendung, welche bisher unter 
> Windows lief.
>
> Nun soll diese sauber unter unixoiden Systemen arbeiten und sich auch an 
> die gängigen Dateisystemkonventionen halten. Also die notwendigen 
> Dateien an den richtigen Orten speichern.

Der Programmcode selbst sollte möglichst wenig davon abhängig sein,
wo die Dateien liegen, damit der Admin das an seine
Wünsche/Bedürfnisse anpassen kann. 

Wenn du keine Pakete (.rpm, .deb, ...) anbietest, ist es üblich, dass
man bei der Installation ein Präfix angeben kann, unterhalb dessen das
Programm dann installiert wird, d.h. mit PRÄFIX=/usr oder / landet das
Programm in /usr/bin, /etc/,..., mit PRÄFIX=/usr/local/ in
/usr/local/etc, /usr/local/bin/...

> Hier bin ich noch nicht so ganz im Bilde und bei einigen Dingen unsicher.
>
> Das binary in
> /usr/bin
> oder
> /usr/local/bin
>
> Wo ist hier der konzeptionelle Unterschied?

In /usr/bin liegen Programme des OS-Herstellers, /usr/local/bin ist
für lokal vom Admin installierte Programme. Außerdem gibt es noch
/opt/$PAKETNAME/bin

> Konfiguration in
> &HOME/.anwendung
> und
> /etc/anwendung

Gnome-Anwendungen speichern ihre Konfigurationsdaten über gconf, KDE
hat evtl. was ähnliches. manchmal ist es sinnvoll, wenn man über
Kommandozeilen-Optionen oder eine Umgebungsvariable eine alternative
Konfiguration auswählen kann.

> Und wo kommt das Log-File der Anwendung hin?
> Auf /var/log haben einfache Useranwendungen ja keine Schreibrechte. Gibt 
> es da ein Alternatives Log-Verzeichnis?

Du kannst syslog benutzen, um deine Logmeldungen loszuwerden. Die
meisten Programmiersprachen bieten dafür eine Schnittstelle an.


   Florian
-- 
<http://www.florian-diesch.de/>
-----------------------------------------------------------------------
**  Hi! I'm a signature virus! Copy me into your signature, please!  **
-----------------------------------------------------------------------