standard-ort für log-datei und inhaltsdaten?

flappinski

flappinski

Foren As
Hallo,
da mein Package sich so langsam auf andere (fremde) Computer verteilt, muss ich so langsam einige Standards einhalten.
Zum Beispiel weiss ich schon, dass man die Binaries am besten in /usr/local/bin unterbringt.
Folgende 2 Dinge weiss ich noch nicht:

1) mein programm schreibt eine Log-Datei mit (so wer macht was). Wo bringt man denn sowas unter?
2) und mein Programm greift manchmal auf grosse Standard-Datensätze zurück, wenn der User den Komplett-Datensatz rechnen möchte. Diese sind manchmal ein paar 100MG gross. Wo soll ich die hintun (denn in diesem Verzeichnis sucht mein Programm automatisch, wenn im Arbeitsverzeichnis diese nicht zu finden sind....)

Beides hatte ich bisher in /usr/local/data untergebracht. Aber da dieses Verzeichnis nicht existiert, ist meine Frage, ob es dafür nicht irgendwas standardmässiges gibt?

Vielen Dank,
Stephan
 
1) mein programm schreibt eine Log-Datei mit (so wer macht was). Wo bringt man denn sowas unter?

Normalerweise nach /var/log/
Und Userspeziefische Daten gehoeren ja eigentlich nach /home/user/
 
Hallo,
da mein Package sich so langsam auf andere (fremde) Computer verteilt, muss ich so langsam einige Standards einhalten.
Zum Beispiel weiss ich schon, dass man die Binaries am besten in /usr/local/bin unterbringt.

Das ist schonmal zumindest für Linux falsch.

Einige Distributionen (ich vermute sogar die meisten) sehen /usr/local NICHT in ihren Paketrichtlinien vor:

http://wiki.archlinux.org/index.php/Arch_Packaging_Standards

Package files should follow these general directory guidelines:
/etc
System-essential configuration files
/usr/bin Application binaries
/usr/sbin System binaries
/usr/lib Libraries
/usr/include Header files
/usr/lib/{pkg} Modules, plugins, etc.
/usr/share/man Manpages
/usr/share/{pkg} Application data
/etc/{pkg} Configuration files for {pkg}
/opt
Large self-contained packages such as KDE, Mozilla, etc.

Manche verbieten es sogar:

http://developer.novell.com/wiki/index.php/Special:File/spc/spc.pdf

--prefix defines the prefix where the package will be installed. The default path
/usr/local is used by local system administrators. The packages distributed within
SUSE Linux must not install any files below this directory. The prefix /usr is usually used
instead. Example: --prefix=%_prefix

Greetz,

RM
 
Ups,
vielen Dank schon mal.
Jetzt sind in /usr/bin schon so viele kleine Programme (bei mir 1200 Stück). Ich habe da ja auch noch einige Hilfs-Shell-Scripte (etwa 3 Stück). Soll ich da alle reinkopieren?
/var/log ist ein schönre Tip.
und wenn ich das jetzt richtig verstehe: unter /usr/share/... kann ich Daten unterbringen, auf die dann alle User zugreifen können?

Vielen Dankm
Stephan
 
Code:
{-basti-|-firefly-} => [~]
(18:08:47) touch /usr/share/test
touch: cannot touch `/usr/share/test': Permission denied

Sieht nicht so aus, du hast auch auf /usr/share nur lesenden Zugriff ;) Schreibzugriffe solten normale User nur auf ihr ~ haben, der Sicherheithalber.

Jetzt sind in /usr/bin schon so viele kleine Programme (bei mir 1200 Stück). Ich habe da ja auch noch einige Hilfs-Shell-Scripte (etwa 3 Stück). Soll ich da alle reinkopieren?
Warum nicht?

btw, was fuer Programmdaten willst du da ins System schleusen?
Wenn das Userdaten sind gehoeren die eigentlich nach ~/.$PROGRAMM
 
Zuletzt bearbeitet:
also, das sind grosse datensätze, mit denen die User rechnen sollen. diese werden dabei nicht verändert, d.h. das mit den Schreibrechten ist dabei nicht nicht das Problem. Die Dateien sollen nur einmalig beim Installieren oder durch die Administratoren geschrieben werden. Und diese haben ja die Rechte.
Ausserdem sollen alle User Zugriff auf diese Daten habe, d.h. im Home-Directory der einzelnen User macht das keinen Sinn.
Aber dennoch vielen Dank,
Stephan
 
Ausserdem sollen alle User Zugriff auf diese Daten habe, d.h. im Home-Directory der einzelnen User macht das keinen Sinn.
Natuerlich, hab das nur nicht ganz verstanden, was das fuer Daten sein sollten.
Nu ist mir das klar ;)
 
Dann mach dir unterhalb von /usr/share ein entsprechendes Verzeichnis und setze die Rechte entsprechend.
 
Tja,
ich bin doch noch nich ganz fertig mit dem Thema: In dem Log_File soll ja mitgeschrieben werden, welcher Benutzer gerade was macht. Dies soll naturgemäß durch das Programm selber geschehen. Da ja der Nutzer derjenige ist, der das Programm startet, muss dieser User dann die entsprechenden Rechte haben, oder?.
Nun sind die (anderen) Log-Dateien unter /var/log eigentlich alle nur mit root-rechten ausgestattet. Soll ich nun beim Installieren eine Log-File erstellen und für alle freigeben? Oder ist das Pfusch?
Danke,
Stephan
 
Deine Systemlogs betreffen im Allgemeinen Programme, die mit root-Rechten laufen.
Globale Programme sollten deshalb damit laufen.
Schau dir z.B. an, wie der X-Server läuft.
Alternativ kannst du eine entsprechende Programmgruppe erstellen, die im Logverzeichnis Zugriffe hat, die benötigt werden.

Gruß Wolfgang
 
Hi Wolfgang,
dies soll ja kein Systemprogramm sein. Die einzelnen User sollen ja für sich das Programm starten und dieses soll dann "loggen". Ich nehme an, dass ich also die 2. Alternative wähle. Ich nehme an, Du meinst mit "Programmgruppe erstellen" ein Unterverzeichnis in /var/log zu erstellen, oder?
LG,
Stephan (sorry für diese Anfängerfragen....)
 
Bin ich eigentlich der Einzige, der denkt, dass dieser Thread in "Shell-Skripte" völlig deplaziert ist? Es geht hier viel allgemeiner eher um "Anwendungen" oder gar "Linux OS". (imho..)

BTW: das hier ist rekursives Offtopic. Ich habe in einem Offtopic-Post darauf hingewiesen, dass dieser Thread hier nicht im richtigen Thema ist. (/me explodiert)
 

Ähnliche Themen

Samba viel langsamer als Windows Freigabe

Xubuntu - AVR32-linux crosscompile sqlite

Server-Monitoring mit RRDTool

Erfahrungsbericht: Solaris 9 (x86)

Zurück
Oben