Ein paar erweiterte Fragen um erstellen eigener SPK´s

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

tAntChen

Benutzer
Registriert
12. Sep. 2011
Beiträge
152
Reaktionspunkte
19
Punkte
18
Hallo Freunde,

Ich bin gerade dabei mir einen eigene SPK zu erstellen die mit php,python,nail und unrar arbeitet. Das funktioniert auch alles schon sehr gut, ich hab mir ein kleines Script geschrieben dass mit die SPK schnell erstellt,die abhängigen Pakete werden gegeben falls via IPKG installiert.

Kurz gesagt es läuft schon sehr gut. Aber ich hab da noch Fragen...

  1. Wie funktioniert das Errorhändling der Scripte postinst,preinst usw? Also wie kann man eine Rückmeldung geben wenn was nicht klappt z.B es fehlen Pakete und IPKG ist nicht installiert.
  2. Wie kann ich das Protokoll füttern welches gegeben falls Fehler oder Infos enthalten sollte.
  3. Wie kann ich vor der Installation vom User Optionen abfragen z. B. ob gleich ein Cronjob installiert werden soll oder bei der Deinstallation was alles entfernt werden soll (Konfigurationen usw)
  4. Kann man die SPK auch auf der Konsole installieren, über die GUI ist das immer sehr mühselig ? Oder kann man vor der Installation eine Deinstallation durchführen.
  5. Kann ich meine App auch unter einem anderen User laufen lassen? Ich sehe da einfach Sicherheitsprobleme wenn da mit root rumhantiert gerade was den PHP-Prozess angeht.

Update:

Frage 2 hat sich erledigt das habe ich gerade rausgefunden
 
Zuletzt bearbeitet:
Die ersten Fragen lassen sich mit dem Synology Developers Guide beantworten
1. Musst du von hand schreiben und in SYNOPKG_TEMP_LOGFILE schreiben. (Seite 30)
bei exit != 0 wird das script abgebrochen bei exit 0 wird weitergemacht, Nachrichten im SYNOPKG_TEMP_LOGFILE werden in beiden Fällen angezeigt...
2. genau so wie eins nur, dass du im start-stop-startus scribt den dateinamen eingeben musst (Seite 31 oben)
3. mit hilfe von WIZARD_UIFILES (Seite 26ff). Funktioniert in etwa so: jedes File ist für eine bestimmte Situation (install, upgrade, uninstall) und stellt die darin definierten Variablen während des jeweiligen Vorgangs global zur Verfügung.
4. Soweit ich weiß nicht.
5. Ja, indem du beim starten den user festlegst, ich erstelle z.B. immer einen eigenen user für meine Pakete du kannst ihn mit synouser --add erstellen mehr dazu hier. Ich erstelle darin mitt dem passgen perl script immer ein individuelles Passwort um den User zu sichern. meine fertige line sieht dann z.B. so aus:
synouser --add subsonic `${SYNOPKG_PKGDEST}/passgen 1 20` "Subsonic daemon user" 0 "" ""
echo "$(date +%d.%m.%y_%H:%M:%S): create subsonic daemon user" >> ${SYNOPKG_PKGDEST}/subsonic_package.log
in der 2. Zeile wird dann ein Zeitstempel und ein logeintrag ins package log namens "subsonic_package.log" geschreiben.

Ich hoffe, ich konnte dir helfen =)
 
Zuletzt bearbeitet:
Danke gigion,

das hat mir in der Tat sehr geholfen. Danke :)
 
ach zu 5. du musst dann im start-stop-status script dein prgramm natürlich als dein erstellter user starten:
in meinem fall stertet das programm durch das ausführen eines shell scripts folgendermaßen
su - subsonic -s /bin/sh -c /usr/syno/synoman/webman/3rdparty/Subsonic/subsonic.sh
wobei du dann natürlich usernamen, pfad und namen der auszuführenden datei ändern musst...

su ändert den user
-s ändert die shell
-c ist der Befehl, der ausgeführt werden soll
 
Kann man die SPK auch auf der Konsole installieren, über die GUI ist das immer sehr mühselig ? Oder kann man vor der Installation eine Deinstallation durchführen.
Wenn ein Script preupgrade und postupgrade existiert, werden diese Scripte am Anfang (zum Sichern der Dateien) und am Ende (zum Wiederherstellen der zuvor gesicherten Dateien) ausgeführt. Ohne diese Scripte hindert dich das Paketzentrum am upgrade des Paketes.

Reihenfolge der Scripte:
  1. preupgrade (optional für Upgrade)
  2. preuninst
  3. postuninst
  4. preinst
  5. postinst
  6. postupgrade (optional für Upgrade)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat