staging.inyokaproject.org

Für diese Funktion musst du eingeloggt sein.

Einfacher Weg zum maintainer script?

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

liberavia

Avatar von liberavia

Anmeldungsdatum:
29. November 2006

Beiträge: 343

Hallo Leute und ein frohes Neues!

Habe eine kleine Webanwendung, welche ich bisher auch immer als installierbares Paket angeboten habe. Um den Aufwand gering zu halten, bin ich nach dieser Anleitung vorgegangen:

http://r4g.de/2007-07/deb-paket-bauen-fuer-ubuntu-und-debian-ganz-einfach/

Auch wenn es nicht grad standardkonform ist, funktionierte die Installation eines solchen Paketes bisher ziemlich gut.

Um eine Initialkonfiguration durch den Benutzer zu erreichen, habe ich in das init-script in /etc/init.d die option init eingebaut, welche ein Installationsscript ausführt. Hier werden die Verbindungsinformationen zum MySQL-Server abgefragt und ein Trunk der Datenbank eingespielt. Vorher lässt sich der Dienst nicht starten

Viel lieber hätte ich aber, dass das Initialieserungsscript im ncurses Design die erforderlichen Daten direkt nach der Installation über ein maintainer-script abfragt.

Unter

http://wiki.ubuntuusers.de/Grundlagen_der_Paketerstellung

taucht im Debian-Ordner die Datei postinst.ex auf. Kann ich mein Bash-Script hier hinein schreiben, damit es im Anschluss der Installation ausgeführt wird?

Hoffentlich kann mir einer von euch weiterhelfen. Bis dahin

Schöne Grüße

Maduser

Avatar von Maduser

Anmeldungsdatum:
3. Mai 2005

Beiträge: 1238

Ich denke alle Informationen findest du dazu im Debian Policy Manual und Debian Configuration management.

liberavia

(Themenstarter)
Avatar von liberavia

Anmeldungsdatum:
29. November 2006

Beiträge: 343

Hallo,

danke für deine Links, sie haben mich zum Etappenziel gebracht ☺ Das Einfügen der bash-scripte postinst und prerm mit der option set -e sorgen jetzt für eine saubere installation und deinstallation.

Das derzeitige Paket kann man sich hier herunterladen (Weboberfläche für Asterisk-Telefonieserver):

http://fisi-itse.de/index.php?option=com_docman&task=cat_view&gid=9&Itemid=20

Mehr Infos zum Programm bereite ich grad vor (wiki und launchpad)

https://launchpad.net/callbuntu-webgui

Mein Problem ist nun folgendes:

Das Paket erfordert eine reihe von zuvor zu installierenden Paketen. Mit dem Ubuntu-Paketinstaller kein Problem.

1
dpkg -i 

listet hingegen nur die Pakete auf, die noch benötigt werden. Die Lösung hieße natürlich apt-get mit einem entsprechenden repository.

Im Normalfall würde ich das Paket gern bei launchpad im PPA hosten. Allerdings wird in allen mir bekannten Howtos von einem source-paket ausgegangen, welches dann durch launchpad kompiliert wird. Ich verwende in meinem Paket nur Scriptsprachen, folglich ist hier nix zu kompilieren. Wie gehe ich vor?

Die andere Lösung wäre ein deb repository mit debarchiver, allerdings habe ich dafür keinen passenden Server zur Hand.

Hat der eine oder andere vielleicht einen Tipp für mich, wie ich das Paket für meine Weboberfläche sauber zusammenstellen kann, dass launchpad mein Paket annimmt?

Vielen Dank

André

Maduser

Avatar von Maduser

Anmeldungsdatum:
3. Mai 2005

Beiträge: 1238

Für Scriptsprachen wird dann beim Paketbau für build nichts gemacht. Aber beim install muss dann alles in debian/<Paketname> (ich glaube debian/temp, wenn es mehr als ein Binär-Paket wird) kopiert werden. Dort so als würde es in root liegen (also ./debian/<Paketname>/usr/bin/tollesbin). Wenn du z.B. python nutzt geht dies sehr schön mit cdbs (siehe PackagingGuide/Python).

liberavia

(Themenstarter)
Avatar von liberavia

Anmeldungsdatum:
29. November 2006

Beiträge: 343

Maduser schrieb:

Dort so als würde es in root liegen (also ./debian/<Paketname>/usr/bin/tollesbin). Wenn du z.B. python nutzt geht dies sehr schön mit cdbs.

Ein Kessel Buntes 😕 Python, bash, php, Textdateien.

Könnte ich also einfach ein tar.gz hinschicken, welches dem Inhalt des bisherigen Paketes entspricht?

Würd mich freuen, wenn du es mal auspacken und einen Blick auf die Paketstruktur werfen könntest.

Alternativ kannst du den Code auch bei launchpad einsehen. Hier habe ich mich erstmal für drei code-repos entschieden (frontend (/var/www/), backend(/usr/bin/) und die restliche Struktur in misc. So recht begeistert mich das allerdings noch nicht.

https://code.launchpad.net/callbuntu-webgui

Edit: Wie kannn ich eigentlich das alte code-repo des verlinkten subversion servers entfernen (Rev. 50) ?. Möchte möglichst alles nach und nach bei launchpad organisieren.

Maduser

Avatar von Maduser

Anmeldungsdatum:
3. Mai 2005

Beiträge: 1238

Wie hast du das Paket den gebaut? Gibt es irgendein Script welches alle Dateien an die Orte kopiert oder wie findet im Moment ohne deb eine Installation statt?

Ich habe so ein Paket, wo kein makefile, setup.py o.ä. bei ist, auch noch nie gebaut. (Bin aber interessiert wie das geht ...)

Was mir beim schnellen rüber schauen aufgefallen ist: Du hast nicht alle GPL Vorgaben erfüllt. Laut GPL soll in jeder source-Datei der Absatz sein unter welcher Lizenz das steht. (siehe How to Apply These Terms to Your New Programs)

Zu den Bazarfragen kann ich nichts sagen und vielleicht sind die in einem neuen Thread besser aufgehoben.

liberavia

(Themenstarter)
Avatar von liberavia

Anmeldungsdatum:
29. November 2006

Beiträge: 343

Edit:

Wie hast du das Paket den gebaut? Gibt es irgendein Script welches alle Dateien an die Orte kopiert oder wie findet im Moment ohne deb eine Installation statt?

Tatsächlich überlasse ich dem deb-paket diesen job 😕

Ich habe so ein Paket, wo kein makefile, setup.py o.ä. bei ist, auch noch nie gebaut. (Bin aber interessiert wie das geht ...)

Der erste Link in diesem Thread 😉 Aber eben quick und dirty

Zu den Bazarfragen kann ich nichts sagen und vielleicht sind die in einem neuen Thread besser aufgehoben.

Vermutlich hast du recht.

Danke soweit

André

Maduser

Avatar von Maduser

Anmeldungsdatum:
3. Mai 2005

Beiträge: 1238

liberavia schrieb:

Edit:

Wie hast du das Paket den gebaut? Gibt es irgendein Script welches alle Dateien an die Orte kopiert oder wie findet im Moment ohne deb eine Installation statt?

Tatsächlich überlasse ich dem deb-paket diesen job 😕

Hat natürlich den Nachteil das ein nicht debianbasiertes OS, damit nicht weit kommt ...

Ich habe so ein Paket, wo kein makefile, setup.py o.ä. bei ist, auch noch nie gebaut. (Bin aber interessiert wie das geht ...)

Der erste Link in diesem Thread 😉 Aber eben quick und dirty

Ich denke nicht das dies der "offizielle" Weg ist. Ich habe mal einen Blick in mythtv-theme-neon-wide (apt-get source mythtv-theme-neon-wide) geworfen. Da wird das über cdbs mit und einer install Datei im debian Verzeichnis gemacht. (Die meisten Zeilen in der rules kannst du ignoriern eigentlich sind nur die ersten beiden relevant für dich. Also

#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk

Und in der install steht halt das Ordner neon-wide nach (/)usr/share/mythtv/themes gehört. )

Antworten |