pluginsystem
-
vielleicht nach ~/.programname/plugins und globale Plugins dann nach $PREFIX/share/programname/plugins
(btw. am Benutzerfreundlichsten wäre es wohl, wenn man im Programm einfach eine Funktion/Menüeintrag "Load Plugin" hätte und das kümmert sich um alles :))
-
Artchi schrieb:
miller_m schrieb:
wie schon erwähnt ist das ja unter linux sinnlos.
Ähm, was willst du damit sagen??? "Sinnlos" ist ja keine Erklärung, oder? WARUM ist es sinnlos??? Will ja nur den Grund wissen.
na dann frag doch
bin der meinung das ich /usr/bin oder /usr/local/bin nicht mit meinen plugins zu müllen sollte bzw. sie auch nicht dafür gedacht sind. korrigiere mich bitte falls ich falsch liege
-
Artchi schrieb:
miller_m schrieb:
wie schon erwähnt ist das ja unter linux sinnlos.
Ähm, was willst du damit sagen??? "Sinnlos" ist ja keine Erklärung, oder? WARUM ist es sinnlos??? Will ja nur den Grund wissen.
1. Weil unter Linux/Unix Programme anders aufgeteilt werden
2. Weil im Gegensatz zu Windows arbeiten die wenigsten Leute als root unter Linux/Unix
etc.
-
rüdiger schrieb:
vielleicht nach ~/.programname/plugins
daran dachte auch ich schon. ist ein gängiger weg?
rüdiger schrieb:
(btw. am Benutzerfreundlichsten wäre es wohl, wenn man im Programm einfach eine Funktion/Menüeintrag "Load Plugin" hätte und das kümmert sich um alles :))
vielleicht wird das irgendwann mal ein feature
-
Hem, verstehe ich trotzdem nicht. Weil was hat ein Plugin-System mit Windows zu tun? Das ist das, was mir unklar ist. Kenne viele Windows-Programme die Plugins benutzen, und die haben die Plugins meistens im eigenen Programmverzeichnis abgelegt, oder halt in einem anderen Verzeichnis (das man z.B. in der Anwendung angeben kann). Und warum sollte man das unter Linux nicht auch so handhaben? Ich meine nur, welche andere Möglichkeit, als "einfach im Verzeichnis rumliegen haben" sollte es sonst geben?
-
rüdiger schrieb:
2. Weil im Gegensatz zu Windows arbeiten die wenigsten Leute als root unter Linux/Unix
etc.Hem... und was haben Admins mit Plugins zu tun? Oder meinst die ActiveX/COM-Komponenten? Die sind aber seit WinXP auch Registry-free, d.h. einfach in den Programmordner legen und fertig. Muß nichts mehr registriert werden. Plugins können doch aber im einfachsten Fall auch nur ausführbare Dateien sein oder dynamische Libs. In Cinema4D kompiliert man seine Plugins gegen eine Library und legt die einfach in das Programmverzeichnis, und das Plugin taucht im C4D-Menü auf. Fertig. Hat wenig mit Windows im Speziellen zu tun. Das gleiche Verfahren wird auch in der MacOSX-C4D-Variante gemacht, sogar auf der gleichen Codebasis (vom Plugin meine ich).
-
Artchi schrieb:
Hem, verstehe ich trotzdem nicht. Weil was hat ein Plugin-System mit Windows zu tun? Das ist das, was mir unklar ist. Kenne viele Windows-Programme die Plugins benutzen, und die haben die Plugins meistens im eigenen Programmverzeichnis abgelegt, oder halt in einem anderen Verzeichnis (das man z.B. in der Anwendung angeben kann). Und warum sollte man das unter Linux nicht auch so handhaben? Ich meine nur, welche andere Möglichkeit, als "einfach im Verzeichnis rumliegen haben" sollte es sonst geben?
bis jetzt habe ich es unter windows immer so gelöst, das die exe ihr programmverzeichniss (vielleicht noch programmverzeichniss/plugins wenn es wichtig aussehen muss) iteriert und einfach ein plugin nach dem anderen lädt. unter linux geht das nicht, da ich nicht wirklich ein eigenes programm verzeichniss besitze (ausnahme ~/.programm)
wenn ein programm einfach nen verzeichniss in meinen home erstellen würde wäre ich nicht sehr erfreut darüber. ausnahme wäre natürlich ~/.programm, aber kommt damit jeder user zurecht und dies praktikabel?
-
~/.progammname ist aber gängig? Zumindest habe ich unter meinem Linux nicht gerade wenige davon. OK, es werden da hauptsächlich Configs usw. abgelegt. Aber Plugins wären auch nicht falsch. Warum? Ein Grund kann sein, das nicht jeder User alle Plugins haben will, die lokal auf dem System verfügbar sind. Weiterhin kann z.B. bei Problemen mit Plugins jeder User ein "Problem"-Plugin entfernen, ohne das die anderen User davon betroffen sind. OK, auch das könnte man nur über eine Configdatei lösen. Aber auch hier könnte z.B. jeder User seine eigene Version eines Plugins speichern. User A hat PlugIn-X v2, User B hat lieber PlugIn-X v1.1.
Also, ich sehe da keine Nachteile...
-
die vorteile ~/.programmname sind klar ersichtlich. nachteil wäre meiner meinung nach einem user beizubringen das er die plugins dort hin kopieren muss (ich sehe keinen ordner im konqueror, nautilus, etc der so heisst)
-
Stimmt. Was spricht gegen ~/programmname? Oder wie gesagt, der User soll in der Anwendung einen Pfad angeben können. Oder in der Anwendung über einen Menüpunkt eine Art Plugin-Installer-Dialog einbauen, ist in Wirklichkeit nur ein Kopieren/Verschieben der Datei in das ~/.programmname-Verzeichnis. Der Aufwand dafür ist minimal.
-
miller_m schrieb:
rüdiger schrieb:
vielleicht nach ~/.programname/plugins
daran dachte auch ich schon. ist ein gängiger weg?
Ja
Artchi schrieb:
rüdiger schrieb:
2. Weil im Gegensatz zu Windows arbeiten die wenigsten Leute als root unter Linux/Unix
etc.Hem... und was haben Admins mit Plugins zu tun? Oder meinst die ActiveX/COM-Komponenten? Die sind aber seit WinXP auch Registry-free, d.h. einfach in den Programmordner legen und fertig.
Es hat was mit Admin rechten zu tun oder sind deine Programm-Verzeichnisse für alle User beschreibbar? (Tipp: Dann brauchst du auch gar keine Unterteilung zwischen Admin und Usern). Außerdem solltes es vielleicht auch Wege geben, das Plugins nicht systemweit, sondern nur für einen bestimmten User geladen werden (zB ein Plugin, was das Layout auf größere Schrift und einen höheren Kontrast einstellt...)
miller_m schrieb:
die vorteile ~/.programmname sind klar ersichtlich. nachteil wäre meiner meinung nach einem user beizubringen das er die plugins dort hin kopieren muss (ich sehe keinen ordner im konqueror, nautilus, etc der so heisst)
Weil die Ordner mit . "versteckte" Ordner sind. Gibt mal in der Konsole ls -a ein.
Weil es schwer ist für User zu begreifen, was die machen sollen, füge am besten eine Option deinem Programm hinzu, mit der man die Programme einfach laden kann... (Ist ja keine Schwierigkeit, du musst ja nur das Plugin in den Ordner verschieben ...)
Artchi schrieb:
Stimmt. Was spricht gegen ~/programmname?
Gegen ~/programmname spricht, das man dann eine riesige Unordnung erhält, weil man nicht mehr durchblickt, was nun wichtige Verzeichnisse für den User sind und was nun von irgend welchen Programmen angelegt wurde.
-
Artchi schrieb:
Menüpunkt eine Art Plugin-Installer-Dialog einbauen, ist in Wirklichkeit nur ein Kopieren/Verschieben der Datei in das ~/.programmname-Verzeichnis. Der Aufwand dafür ist minimal.
so etwas werde ich vermutlich auch einbauen. diesen könnte ich dann später (viel später) mit einem webspeicherort erweitern.
rüdiger schrieb:
miller_m schrieb:
die vorteile ~/.programmname sind klar ersichtlich. nachteil wäre meiner meinung nach einem user beizubringen das er die plugins dort hin kopieren muss (ich sehe keinen ordner im konqueror, nautilus, etc der so heisst)
Weil die Ordner mit . "versteckte" Ordner sind. Gibt mal in der Konsole ls -a ein.
das war ein zitat war auf einen user (dau) bezogen
rüdiger schrieb:
Weil es schwer ist für User zu begreifen, was die machen sollen, füge am besten eine Option deinem Programm hinzu, mit der man die Programme einfach laden kann... (Ist ja keine Schwierigkeit, du musst ja nur das Plugin in den Ordner verschieben ...)
siehe oben
[edit]
punkt übersehensomit hinfällig
-
wie schon erwähnt ist das ja unter linux sinnlos.
Ich verstehe es auch nicht warum es unter Linux sinnlos sein soll. Die Plugins liegen einfach Programm-Verzeichnis als so-libs, was ist daran sinnlos ?
-
Marcin schrieb:
wie schon erwähnt ist das ja unter linux sinnlos.
Ich verstehe es auch nicht warum es unter Linux sinnlos sein soll. Die Plugins liegen einfach Programm-Verzeichnis als so-libs, was ist daran sinnlos ?
ich dacht das wäre geklärt? frag dich doch mal wo dein programm liegt
vermutlich irgendwo /usr/bin oder /usr/local/bin dort will ich keine plugins reinkopieren, weil sie imho dort nix zu suchen haben. weitere argumente wurden von rüdiger auch genannt.
-
dort will ich keine plugins reinkopieren
Die ablage der SO's oder DLL's ist doch vollkommen schnuppe fuer das konzept selber.
Lass den User von mir aus nen verzeichniss angeben, wo er die so's sucht. Wenn nen programm unter unix unter user-rechten laeuft, braucht er die so nur lesen zu koennen, und schon kann er sie verwenden. Also spricht nicht mal was dagegen es ins home verzeichiss unter ~/appname/plugins zu legen. Und die App selber auch noch globale plugins laden zu lassen die unter /usr/share/appname/plugins liegen.Weiterhin kannst den user sogar selber angeben lassen welches plugin er laden soll .... einfach mit nem dateiauwahldialog ....
Wo ist denn da das Problem ?
BTW die QT bietet auch nen rudimentaeres Plugin Framework an, das kann man auch nutzen .... erspart viel basisarbeit.
Ciao ...
-
RHBaum schrieb:
dort will ich keine plugins reinkopieren
bezieht sich auf die */bin verzeichnisse
RHBaum schrieb:
Die ablage der SO's oder DLL's ist doch vollkommen schnuppe fuer das konzept selber.
Lass den User von mir aus nen verzeichniss angeben, wo er die so's sucht. Wenn nen programm unter unix unter user-rechten laeuft, braucht er die so nur lesen zu koennen, und schon kann er sie verwenden. Also spricht nicht mal was dagegen es ins home verzeichiss unter ~/appname/plugins zu legen. Und die App selber auch noch globale plugins laden zu lassen die unter /usr/share/appname/plugins liegen.ja natürlich, ist alles vollkommen klar. ich wollte nur konzeptvorschläge wie man ein pluginsystem (verzeichnissstruktur, configfiles etc. was auch immer) praktikabl und einfach (in bezug auf userfreundlichkeit ohne jetzt riesige automatismen zu entwerfen) unter linux entwirft.
RHBaum schrieb:
BTW die QT bietet auch nen rudimentaeres Plugin Framework an, das kann man auch nutzen .... erspart viel basisarbeit.
benutze gtk
-
miller_m schrieb:
die vorteile ~/.programmname sind klar ersichtlich. nachteil wäre meiner meinung nach einem user beizubringen das er die plugins dort hin kopieren muss (ich sehe keinen ordner im konqueror, nautilus, etc der so heisst)
Der Nachteil ist auch ganz klar, dass einmal installierte Plugins nur dem User zur Verfügung stehen. Mehrere User mit dem selben Tool und den selben Plugins installieren die Plugins mehrfach und die Plugins liegen mehrfach in unterschiedlicher Version im Filesystem. In meinen Augen das Unschönste was man machen kann. Bei Konfigurationsdateien ist das was anderes.
Gibts unter Linux keinen "Common"-Bereich wo jeder hin und Dateien hinlegen darf?
-
junix schrieb:
Der Nachteil ist auch ganz klar, dass einmal installierte Plugins nur dem User zur Verfügung stehen.
Es sei denn, ein Admin installiert sie systemweit.
Gibts unter Linux keinen "Common"-Bereich wo jeder hin und Dateien hinlegen darf?
Dafür gibts normalerweise /pub, aber da legt man keine Programme ab (und auch keine Plugins). Unter Unix darf einfach kein Non-Admin Programme außerhalb des Homedirectories installieren; praktische Sache, das.
-
Artchi schrieb:
Stimmt. Was spricht gegen ~/programmname?
Dass ich mir mein Homedirectory nicht von jedem dahergelaufenen Programm mit sichtbaren Dateien zumüllen lassen will. Das Anlegen sichtbarer Verzeichnisse oder Dateien bleibt mir als User vorbehalten bzw. Programmen, die ich direkt dazu anweise. (Bspw. der Projekte-Ordner einer IDE oä.)
-
miller_m schrieb:
ich dacht das wäre geklärt? frag dich doch mal wo dein programm liegt
Das ist mir schon klar gewesen, Programmverzeichnis war nur ein Beispiel, wenn nicht Programmverzeichnis dann halt irgendein Verzeichnis, das man im Programm z.B unter "Einstellungen" angeben kann.
Nur ich habe dein Posting so verstanden als würdest du so-libs als plugins für sinnlos halten, die so-libs sind aber hierfür doch sehr gut geeignet.