Pakete mit debconf erstellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
rebecca2525
Beiträge: 15
Registriert: 11.07.2007 15:39:28

Pakete mit debconf erstellen

Beitrag von rebecca2525 » 11.07.2007 16:30:44

Hallo zusammen!

Ich habe ein einfaches Pakt ohne debconf erstellt, das klappt auch, aber ich steige noch nicht so ganz durch, wie ich das mit debconf mache.

In dem debian-Ordner habe ich die (u.A.) Dateien config, templates, postinst, postrm (bis auf templates alle ausfuehrbar, ich weiss gar nicht, ob das noetig ist?). Vorher habe ich das Paket mit dpkg-buildpackage -rfakeroot erstellt, muss ich mit debconf da etwas anders machen? So habe ich jedenfalls das Problem, dass anscheinend das config-Script gar nicht ausgefuehrt wird, wenn ich das Paket installieren will. So sieht config momentan aus:

Code: Alles auswählen

#!/bin/sh

set -e

#Source debconf library.
. /usr/share/debconf/confmodule
db_input high helloworld/hello || true
db_go || true

echo "blabla" # zum testen
Manuell laesst es sich auch ausfuehren und ich werde gefragt, aber beim Installieren des Pakets kommt weder die Frage, noch eine Fehlermeldung, noch die echo-Ausgabe...

Was habe ich uebersehen?

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 11.07.2007 18:35:03

Ich muss gestehen, dein Problem noch nicht verstanden zu haben. debconf ist kein Ersatz für dpkg-buildpackage. debconf ist nicht mal dafür da, das Paket zu erstellen, sondern um es (während der Installation) zu konfigurieren. Vlt. meinst du debhelper. Das sind die Skripte, die mit dh_ beginnen. Jedoch werden auch diese nicht losgelöst benutzt, sondern innerhalb des debian/rules Skripts. Und dieses wird im Zuge von dpkg-buildpackage aufgerufen.

Also am besten, noch mal beschreiben, was du eigentlich vor hast. Denn mit dpkg-buildpackage scheint es ja schon zu funktionieren. Was willst du also ändern?

rebecca2525
Beiträge: 15
Registriert: 11.07.2007 15:39:28

Beitrag von rebecca2525 » 12.07.2007 09:34:51

Ich will, dass der User mein Paket bei der Installation konfigurieren kann. Mir ist klar, dass debconf kein Ersatz fuer dpkg-buildpackage ist, sorry, wenn das falsch rueberkam. Ein nicht-konfigurierbares Paket zu erstellen, gelingt, aber ich bekomme es nicht hin, dass das obige config-Script bei der Installation ausgefuehrt wird.

Habe ich das config- und das templates-Script an falscher Stelle plaziert? Muss ich beim Erstellen des konfigurierbaren Pakets noch etwas anderes machen als das gewohnte dpkg-buildpackage -rfakeroot? Das config-Script wird anscheinend bei der Installation meines Pakets einfach ignoriert, ich bekomme keine Fehlermeldungen und keine Frage. Manuell funktioniert das config-Script allerdings.

guenni81
Beiträge: 295
Registriert: 30.11.2006 22:26:48
Lizenz eigener Beiträge: GNU General Public License

Beitrag von guenni81 » 12.07.2007 10:47:31

rebecca2525 hat geschrieben:Ich will, dass der User mein Paket bei der Installation konfigurieren kann. Mir ist klar, dass debconf kein Ersatz fuer dpkg-buildpackage ist, sorry, wenn das falsch rueberkam. Ein nicht-konfigurierbares Paket zu erstellen, gelingt, aber ich bekomme es nicht hin, dass das obige config-Script bei der Installation ausgefuehrt wird.

Habe ich das config- und das templates-Script an falscher Stelle plaziert? Muss ich beim Erstellen des konfigurierbaren Pakets noch etwas anderes machen als das gewohnte dpkg-buildpackage -rfakeroot? Das config-Script wird anscheinend bei der Installation meines Pakets einfach ignoriert, ich bekomme keine Fehlermeldungen und keine Frage. Manuell funktioniert das config-Script allerdings.
Wie ist dein Pakage zur Zeit aufgebaut?
mfg
Günni

rebecca2525
Beiträge: 15
Registriert: 11.07.2007 15:39:28

Beitrag von rebecca2525 » 12.07.2007 17:17:26

Code: Alles auswählen

> tree helloworld-1.0/
helloworld-1.0/
|-- build-stamp
|-- debian
|   |-- README.Debian
|   |-- changelog
|   |-- compat
|   |-- conffiles
|   |-- config
|   |-- control
|   |-- copyright
|   |-- dirs
|   |-- docs
|   |-- files
|   |-- helloworld
|   |   |-- DEBIAN
|   |   |   |-- conffiles
|   |   |   |-- control
|   |   |   |-- md5sums
|   |   |   |-- postinst
|   |   |   `-- postrm
|   |   |-- etc
|   |   |   `-- helloworldrc
|   |   `-- usr
|   |       |-- bin
|   |       |   |-- hellohost.py
|   |       |   `-- helloworld.py
|   |       `-- share
|   |           `-- doc
|   |               `-- helloworld
|   |                   |-- README.Debian
|   |                   |-- changelog.Debian.gz
|   |                   `-- copyright
|   |-- postinst
|   |-- postrm
|   |-- rules
|   `-- templates
|-- hellohost.py
|-- helloworld.py
`-- helloworldrc
Interessanterweise tauchen config und templates in dem Ordner debian/helloworld/DEBIAN nicht auf. Ich habe das Gefuehl, mir fehlt nur die Information, wo ich die beiden Dateien hintun muss, oder was ich damit machen muss bevor ich das Paket erstelle.

Antworten