[Megoldva] Debian csomag template hogyan?

Fórumok

Egy ideje faragok magamnak egyszeru deb csomagokat, amik mukodnek, most viszont az merult fel, hogy egy kerdest kellene feltennie. Ugye sok deb csomag csinal ilyet.

Namost, azt megtalaltam, hogy nekem ehhez template kell, de nem boldogulok vele. Van templatem, benne a kerdessel (select, ha ez szamit), aztan a postinst-bol hivom a db_input-ot, ami jol nem kerdez semmit, utana meg a db_get-et, ami meg mindig visszaadja a default erteket.

Ha ezt sikerul megoldani akkor mar elore latom, hogy lesz egy masodik kerdesem is. Hogy kezeli a csomag upgrade-je ezeket a kerdeseket? Miutan egyszer megkerdeztem a user-t nem szeretnem minden alkalommal ujra es ujra (ugy ertem minden alkalommal mikor frissul a csomag). A dpkg elintezi ezt nekem? Vagy ehhez meg kell valamit kodolnom?

Igy nez ki most a template file-om:


Template: mypackage/question
Type: one
Choices: one, two
Default: one
Description: Bla bla
 Bla bla bla

igy meg a postinst:


#!/bin/bash

. /usr/share/debconf/confmodule

db_input high mypackage/question
db_get mypackage/question
echo "$RET"

---------------------------------------------------------
update: 2014.03.24.

Megoldas: a "db_input" nem a postinst-be kell, hanem a "config"-ba (ami egy shell script a postinst mellett), tehat most igy megy:

postinst:


#!/bin/bash

. /usr/share/debconf/confmodule

db_get mypackage/question
echo "$RET"

config:


#!/bin/bash

. /usr/share/debconf/confmodule

db_input high mypackage/question

Hozzászólások

googlevel tudsz keresni tutorialt: pl

annyi a lenyege, hogy db_input priority package/kulcs cuccnak a foo.config fajlban kell lennie, itt tortenik az input bekeres. a priority azt mondja meg mennyire fontos a kerdes, mennyire zaklassuk az user.
ezutan pedig a postinst/preinst scriptekben a db_get-tel lekerdezed hogy mit valaszolt az user, es az szerint cserlekszik a script.

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Persze, mar talaltam parat, eddig is ugy jutottam. De ez most segitett. Nem szabad a postinst-ba rakni a db_input-ot. Ezt ugyan mar olvastam korabban is, de nem volt egyertelmu, es az sem, hogy ha nem oda akkro hova. De most mar megvan. A postinst melle kell csinalni egy "config" file-t ami a neve ellenere, ugyanolyan shell script (vagy perl, vagy mas...). Igy mar megy. Koszi.