PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux: Neues Programm, wohin welche Datei?



dnb
30-10-2006, 09:41
Hallo,

ich portiere grade eine Windowsapplikation nach Linux (eigentlich zwei, die wohl kommerziel werden). Im Moment kann ich nicht richtig einschaetzen wo ich welche Dateien einordnen soll.

Das erste Programm ist ein (Netzwerk-)Service.
Ausfuehrbare Datei nach -> /bin/ ?
Konfigurationsdateien nach -> /etc/ ?
Datenbankdatei nach -> /var/ ?
Start/Stop/Restart-Script nach -> /etc/init.d/ ?
Logdateien nach -> /var/log/ ?

Das zweite Programm ist fuer User bestimmt (GUI).
Ausfuehrbare Datei nach -> /opt/meinprodukt/ ?
Konfigurationsdateien nach -> /HOME/.meinprodukt/ ?
Logdateien nach -> /var/log/ ?

Passt das so, oder hat jemand Verbeserungen?

mfg =>dnb<=

anda_skoa
30-10-2006, 12:25
Als Startpunkt empfehle ich mal das LSB Developer Network:
http://www.freestandards.org/en/Developers

Die Site ist zwar erst im Aufbau, aber die Informationen über LSB (Linux Standard Base) sind schon vorhanden.
Die LSB, falls das nicht so ganz klar sein sollte, regelt die distributionsunabhängige Entwicklung/Installation, d.h. gibt an welche Bibliotheken in welchen Versionen vorhanden sein müssen, etc.

Zu deinen Einzelfragen:
/bin ist nur für Programme, die vom System selbst benötigt werden, d.h. zum Beispiel während des Bootens.
Anwendungen aller Art kommen nach /usr/bin, /usr/local/bin oder /opt

Die andere Verzeichnisse waren für einen Daemon (Service) korrekt.

Bei der Endbenutzer Applikation würde ich eher zum Logging innerhalb/unterhalb des Benutzerverzeichnisses raten, hängt vermutlich ein bischen vom Umfang des Loggings ab, aber unter Windows wird die Applikation vermutlich auch unter "eigene dateien und einstellungen" (oder so ähnlich) loggen.

Bei der Installation von desktopbezogenen Daten, zB Menüeinträge, gibt es von der OSDL Portland Initiative Installationshelferprogramme, die das möglichst desktop- und distributionsunabhängig gestalten.
(Hab derzeit nur die Runtime Tools in meinem Tutorial in der Tipps&Turorial Sektion hier im Forum behandlet, die Installationtools kommen aber noch)

Ciao,
_

dnb
30-10-2006, 12:49
Danke, :D

genau so etwas habe ich schon seit langen gesucht. Hast du auch eine Ahnung, wie lange das dauert, bis sich die Distributionen an den Standard halten?
Mich wundert ja, das SuSE schon zertifiziert ist. Kann mich noch drann erinnern, dass die damals immer ihr eigenes Sueppchen gekocht haben. Haengt jetzt wohl mit der Umstellug nach OpenSuSE zusammen.

PS:
Kleine Aenderungen nach etwas LSB lesen:

Das erste Programm ist ein Daemon.
Ausfuehrbare Datei nach -> /opt/meinpaket/bin/
Konfigurationsdateien nach -> etc/opt/meinpaket/
Datenbankdatei nach -> /var/opt/meinpaket/
Start/Stop/Restart-Script nach -> /etc/opt/meinpaket/init.d/
Logdateien nach -> /var/opt/meinpaket/log/

Das zweite Programm ist fuer User bestimmt (GUI).
Ausfuehrbare Datei nach -> /opt/meinprodukt/bin/
Konfigurationsdateien nach -> /HOME/.meinprodukt/
Logdateien nach -> /HOME/.meinprodukt/log/

anda_skoa
30-10-2006, 15:46
Hast du auch eine Ahnung, wie lange das dauert, bis sich die Distributionen an den Standard halten?

Das ist meistens eine Frage des nächsten Release. Wenn der zu knapp nach einer neuen Version des Standards ist, kommt diese neue Version natürlich erst in den übernächsten Release, sonst schon in den nächst möglichen.

Nur sollte man dabei bedenken, daß speziell die "Enterprise" Distributionen nur ca. alle drei Jahre einen Major Release machen.

LSB3.1, der ja zu erstenmal auch Anteile für GUI Programme hat, dürfte daher je nach Distribution noch dauern oder ist gerade erst reingewandert.

Aber ist auch so, daß man nicht notwendigerweise eine Zertifizierung braucht um LSB zu unterstützen, das hängt stark vom jeweiligen Kundenstamm ab.
D.h. ein Distributor kann LSB auch ohne offizielle Bescheinigung umsetzen und einfach auf den Werbeeffekt der Zertifizierung verzichten, wenn das im Hauptkundensegement nicht so wichtig ist.

Ciao,
_