Postinst Error 10 bei selbstgebauten Debian Package

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 13.12.2009 23:30:55

Hi,

ich habe eine Reihe selbstgebaute Debian Packages. Alle funktionieren bis auf eines, das bei db_get immer
einen postinst error 10 verursacht.

Weiß jemand was das ist, oder wie man das debuggeb kann ?

Ciao
Matze
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von Profbunny » 14.12.2009 09:06:08

hi,


schau mal unter
dpkg --debug=help

da gibt es eine option um die scripte zu debuggen. dann zeig uns mal die ausgabe und wir sehen weiter..


hth
Rechner / Server Debian sid

Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 14.12.2009 09:47:56

Hi,

ich habe mal dpkg --debug=2 -i package versucht und bekomme diese Ausgabe:
nopaste: NoPaste-Eintrag33221

Kannst Du da etwas erkennen ?

Ciao
Matze
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von chrisbra » 14.12.2009 10:34:06

Führ doch mal das Script aus per bash -x /var/lib/dpkg/mypackage.postinst configure

oder schreib mal set -x in dein Script. (Ist doch ein Bashscript?)
Meine Whishlist
:wq!

Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 14.12.2009 11:47:13

Hallo,

trage ich in das postinst ein set -x ein funtkioniert alles einwandfrei es gibt keinen Fehler. Trage ich ein set -e ein, bekomme ich wieder meinen postinst Fehler 10.

Wie kann das sein ? Ich dachte -x zeigt mir nur den Ausführungverlauf an !?

Kurzer Nachtrag: alle Abfragen, die ich über db_get mache werden nicht ausgeführt...

Vielen Dank, ich denke ich weiss jetzt wo ich suchen muss.


Ciao
Matthias
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 14.12.2009 12:33:05

Hallo,

inzwischen scheint klar woran es liegt. Das Configure Skript wird nicht gestartet, und wenn die db_get Variablen nicht gelesen werden können, wird der Returncode 10 zurückgegeben.

Bleibt die Frage, warum wird das config Skript nicht gestartet.

Hat da vielleicht jemand einen Tipp ?


Ciao
Matthias
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von KBDCALLS » 14.12.2009 12:36:14

Das poste die Scripte doch mal nach NoPaste.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 14.12.2009 13:21:10

Hi,

mein config ist unter: NoPaste-Eintrag33242
mein postinst unter: NoPaste-Eintrag33243

Ciao
Matthias
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von chrisbra » 14.12.2009 15:01:04

Zeig lieber mal den Output bei set -x oder set -xe
Meine Whishlist
:wq!

Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 14.12.2009 16:35:19

Hi,

hier die Ausführung mit set -xe im postinst: NoPaste-Eintrag33253

Irgendwelche Ideen ?

Ciao
Matthias
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von chrisbra » 14.12.2009 17:33:23

Du rufst in deinem Postinst-Script auf:
db_get myPackage/maxDelete
und dann wird aus /usr/share/debconf/confmodule
_db_cmd aufgerufen:

Code: Alles auswählen

_db_cmd () {
        IFS=' ' printf '%s\n' "$*" >&3
        # Set to newline to get whole line.
        IFS='
' read -r _db_internal_line
        # Disgusting, but it's the only good way to split the line,
        # preserving all other whitespace.
        RET="${_db_internal_line#[!     ][      ]}"
        case ${_db_internal_line%%[     ]*} in
                1)      # escaped data
                        RET="$(printf '%s' "$RET" | debconf-escape -u)"
                        return 0
                        ;;
        esac
        return ${_db_internal_line%%[   ]*}
}
Ich kenne jetzt debconf nicht, aber wird dort nach einer Eingabe gefragt? Auf jeden Fall bekommst Du als Rückgabe "10 mypackage/maxDelete". Und das wird dann in dem Code von confmodule zu return 10 expandiert. Und da du dort ein set -e drin hast, bricht dein Postinst Script ab.

Eine Lösung kann ich dir aber auch nicht nennen. Die dreckige Lösung wäre natürlich set -e auszukommentieren. Aber ob du das wirklich willst? (Evtl. vor dem db_get Aufruf ein set +e und hinterher ein set -e?)
Meine Whishlist
:wq!

Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 14.12.2009 17:39:49

Hi,

ja debconf mach diesen Dialog auf um etwas abzufragen. bis jetzt ging das immer alles ohne Probleme, aber dieses Paket bringt mich.
Das Problem scheint mir, dass der Dialog nicht kommt der diesen Wert setzt, denn eigentlich sollte der ja schon vor der Installation kommen. Da kommt aber nichts. Rufe ich config vor dem dpkg -i auf werden die Werte gesetzt und alles läuft prima.

Ich weiß halt bloss nicht, warum config nicht startet :(

Ciao
Matthias
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

Benutzeravatar
barmeier
Beiträge: 358
Registriert: 12.11.2002 17:33:00
Kontaktdaten:

Re: Postinst Error 10 bei selbstgebauten Debian Package

Beitrag von barmeier » 14.12.2009 18:27:01

HI,

ich habe es gelöst, ich hatte versehentlich "dh_installdebconf" auskommentiert. Da ich in meinem postinst mit db_get auf eine nicht vorhandenen Eintrag zu greifen wollte evaluierte das zu $RET=10 und da set -e gesetzt war brach der Job ab.

Die Fehlermeldung finde ich allerdings lausig :(.

Naja, vielleicht hilft meine Odyssee jemand anderem.

Vielen Dank an alle die mitgeholfen haben.

Ciao
Matthias
/* OS: Squeeze / Wheezy / Jessie auf amd64/i386/ARM */

Antworten