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/icons

    Wird 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.png

    Details 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_Standard

    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 🙄



  • 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.


Anmelden zum Antworten