Verstehe die Verzeichnisstruktur von Linux nicht
-
Hi
In Linux werden die Dateien einer Software in der Verzeichnisstruktur verstreut gespeichert. Verzeichnisse haben verschiedene Bedeutungen und unterschiedliche Programme teilen sich Verzeichnisse. Die einzelnen Dateien werden eben dort reingepackt wo es passt. Richtig?
Das verwirrt mich immer, weil ich nie genau weiß wo was gespeichert ist. Außer bei einfachen Fällen wie z.B. Executables.
Angenommen ein Programm verweden Bilddateien für Buttons oder Texturen. In Windows würden diese Bilder vielleicht in einem Unterordner \image (oder so) des Programms gespeichert werden.
Wo aber in Linux?Wie entscheide ich als Entwickler, wo ich was hinpacke?
Wird irgendwo protokolliert, wo eine installiertes Programm überall Dateien gespeichert hat? Wenn nicht, wie löscht man alles wieder? Muss das Programm dafür eine Deinstallationsroutine liefern?
Zu /opt folgendes:
"Software, die nicht zum üblichen Installationsumfang von Unix-Systemen gehören, werden oft unter diesem Zweig installiert. So werden nahezu alle kommerziellen Softwarepakete hier eingerichtet" (http://www.de.linwiki.org/index.php/Linuxfibel_-_Das_Dateisystem_-_Verzeichnisstruktur)Aha, hat dort jede Software separat ihr Verzeichnis wie in Windows?
Dann heißt es aber, dass in /usr/bin Nutzerprogramme sind. Dort sind aber nur Executables.
Was jetzt? Sollte man z.B. große Software nach /opt, kleine Programme mit wenig (oder keinen?) zusätzlichen Dateien nach /usr/bin legen?Blicke da nicht durch.
Es erscheint mir alles ein wenig durcheinander.Danke
-
linux_unkundiger schrieb:
Dann heißt es aber, dass in /usr/bin Nutzerprogramme sind. Dort sind aber nur Executables.
und executables sind wohl keine programme oder was?
und zu dem ganzen gibts übrigens genug literatur im internet
-
linux_unkundiger schrieb:
Angenommen ein Programm verweden Bilddateien für Buttons oder Texturen. In Windows würden diese Bilder vielleicht in einem Unterordner \image (oder so) des Programms gespeichert werden.
Wo aber in Linux?Na da wo es hingehört: in /usr/share in ein Verzeichnis für dein Programm in ein Bilderordner. Ich denke /usr ist klar, "share" wird in deinem Link als "Architektur-unabhängige Dateien" beschrieben. Von den Standardverzeichnissen ist das die beste Beschreibung für deine Bilder.
Im Zweifel einfach so machen, wie es andere vormachen, z.B.:
/usr/share/opera/images
/usr/share/firefox/iconsWird irgendwo protokolliert, wo eine installiertes Programm überall Dateien gespeichert hat?
Ja, das sollte eigentlich protokolliert werden. Der Paketmanager merkt sich sowas. Du kannst ihn auch explizit fragen, was welches Paket wo installiert hat.
Z.B.:~$ dpkg -S opera | grep images | sort
opera-static: /usr/share/opera/images
opera-static: /usr/share/opera/images/opera_16x16.png
opera-static: /usr/share/opera/images/opera_22x22.png
opera-static: /usr/share/opera/images/opera_32x32.png
opera-static: /usr/share/opera/images/opera_48x48.png
opera-static: /usr/share/opera/images/opera.xpm
opera-static: /usr/share/opera/styles/images
opera-static: /usr/share/opera/styles/images/bar.png
opera-static: /usr/share/opera/styles/images/center.png
opera-static: /usr/share/opera/styles/images/opera.png
opera-static: /usr/share/opera/styles/images/red_center.png
opera-static: /usr/share/opera/styles/images/red_left.png
opera-static: /usr/share/opera/styles/images/red_right.png
opera-static: /usr/share/opera/styles/images/root.png
opera-static: /usr/share/opera/styles/images/top.pngDetails hängen natürlich von deiner Distribution ab - sprich von deinem Paketmanager.
/opt verwende ich eigentlich nur für Programme, bei denen ich selbst ein Installationsverzeichnis angeben oder anlegen muss. Programme, die in Paketen daherkommen, verteilen sich dagegen korrekt wie beschrieben auf die Verzeichnisse.
-
@g00k
Nochmal extra für dich. Ganz ausführlich damit du nicht mitdenken musst:"Dort sind aber nur Executables" und keine weiteren Dateien, die von den Programmen evtl. benötigt werden.
Leute wie du sind eine Bereicherung für jedes Forum. Immer weiter so
@minhen
Danke schonmal
-
linux_unkundiger schrieb:
@g00k
Nochmal extra für dich. Ganz ausführlich damit du nicht mitdenken musst:"Dort sind aber nur Executables" und keine weiteren Dateien, die von den Programmen evtl. benötigt werden.
dateien die von anderen programmen benötigt werden sind aber keine executables und auch keine nutzerprogrammer sondern bibliotheken.
dafür gibts dann verzeichnisse wie /lib oder /usr/lib oder /usr/local/lib oder /var/lib
-
g00k schrieb:
dateien die von anderen programmen benötigt werden sind aber keine executables und auch keine nutzerprogrammer sondern bibliotheken.
Nein! ... wenn du dir z.B. mal das genannte Beispiel von Bildern ansiehst. Diese könne natürlich in Bibliotheken verpackt sein, aber wenn sie es nicht sind, handelt es sich bei einer .bmp-Datei keinesfalls selbst um eine Bibliothek.
-
ok dann hab ich das aufs erste mal falsch verstanden
wenn mich einer nach "dateien die von anderen programmen ben[tigt werden" fragt denke ich halt zuerst an bibliotheken.
k[nnen nat@rlich auch bilder usw sein
-
your wiki is your friend in every situations:
http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
-
DEvent schrieb:
your wiki is your friend in every situations:
http://en.wikipedia.org/wiki/Filesystem_Hierarchy_StandardOh wow, welch Hilfe. Zum Glück enthält der Wikipedia-Artikel mehr Informationen als der Link, den der Threadersteller bereits im ersten Beitrag erwähnte
-
minhen schrieb:
Oh wow, welch Hilfe. Zum Glück enthält der Wikipedia-Artikel mehr Informationen als der Link, den der Threadersteller bereits im ersten Beitrag erwähnte
Welcher Link? ich sehe da nur text.