Re: Uso de debconf al empaquetar en formato .deb
El vie, 13-07-2007 a las 00:31 -0500, cj.oak escribió:
> Nuevamente solicitando su ayuda. Como comenté en otro correo estoy
> trabajando en una aplicación basada en php la cual ya logre empaquetar
> en formato .deb con los consejos de ustedes pero ese paquete requiere
> de algunos parametros a configurar que nos gustaria que sean
> solicitados en las tipicas ventanas que debconf genera cuando un
> paquete es instalado.
>
> Encontré un pequeño tutorial
> ( http://www.fifi.org/doc/debconf-doc/tutorial.html ) que es muy
> claro en lo que presenta, generar un archivo template con la
> información y las opciones a seleccionar en cada ventana y un script
> config que es el que llamará a esas ventanas 'programadas' en el
> archivo templates
>
> mi templates de prueba es:
>
> 1 Template: robles/like_debian
> 2 Type: boolean
> 3 Description: Do you like Debian?
> 4 Nos gustar�a saber si te gusta Debian?
> 5
> 6 Template: robles/why_debian_is_great
> 7 Type: note
> 8 Description: Estas perdido si no usan Debian
>
> y mi script config de prueba es
>
> 1 #!/bin/bash
> 2 . /usr/share/debconf/confmodule
> 3
> 4 db_input medium robles/like_debian || true
> 5 db_go || true
> 6
> 7 db_get robles/like_debian
> 8 if [ "$RET" = "false" ]; then
> 9 echo "Se respondio falso..."
> 10 echo ""
> 11 exit 1
> 12 fi
> 13
> 14 exit 0
>
> Mi idea era hacer una pequeña prueba de como funcionaba debconf para
> más adelante preparar toda la configuración del paquete. Empaquete un
> porgramita de prueba y nada, nunca funciono el debconf, después de
> acuerdo al man del debconf hice una prueba ejecutando el script
> unicamente, antes de empaquetar lo en deb
>
> sudo debconf sh -x config
>
> y el resultado es el siguiente ...
>
> jrobles@neuron:~/proyectos/tmp/debconf$ sudo debconf bash -x config
> + . /usr/share/debconf/confmodule
> ++ '[' '!' 1 ']'
> ++ '[' -z '' ']'
> ++ exec
> ++ '[' '' ']'
> ++ exec
> ++ DEBCONF_REDIR=1
> ++ export DEBCONF_REDIR
> + db_input medium robles/like_debian
> + _db_cmd 'INPUT medium' robles/like_debian
> + printf '%s\n' 'INPUT medium robles/like_debian'
> + IFS='
> '
> + read -r _db_internal_line
> + RET='10 "robles/like_debian" doesn'\''t exist'
> + case ${_db_internal_line%%[ ]*} in
> + return 10
> + true
> + db_go
> + _db_cmd 'GO '
> + printf '%s\n' 'GO '
> + IFS='
> '
> + read -r _db_internal_line
> + RET=ok
> + case ${_db_internal_line%%[ ]*} in
> + return 0
> + db_get robles/like_debian
> + _db_cmd 'GET robles/like_debian'
> + printf '%s\n' 'GET robles/like_debian'
> + IFS='
> '
> + read -r _db_internal_line
> + RET='10 robles/like_debian doesn'\''t exist'
> + case ${_db_internal_line%%[ ]*} in
> + return 10
> + '[' '10 robles/like_debian doesn'\''t exist' = false ']'
>
> no genera la pantalla... baje moodle que es un paquete tambien basado
> en php y recordaba que hacia preguntas sobre el tipo de servidor a
> utilizar y la base de datos etc, entonces baje sus fuentes y ejecute
> la misma instruccion con debconf y si salio la ventana tipo ncurses
> solicitando datos... di algunos datos termine la falsa configuración
> y al intentar nuevamente ejecutar el debconf me salio un codigo
> similar al de mi config y nunca la ventana.
>
> ¿Qué estoy haciendo mal? en el caso de moodle suponia que ya no me
> ponia las ventanas porque las preguntas ya habian sido respondidas...
> entonces fui a /var/cache/debconf y supuestamente borre las lineas que
> genero la respuestas del paquete moodle pero al intentar correr
> nuevamente el script nunca se genera la ventana, solo aparece la serie
> de instrucciones que antes coloque.
>
> Tiene alguien algún ejemplo de como integrar debconf en un paquete? He
> buscado un mejor manual o documento que explique con más detalle lo
> que quiero hacer pero nada, si alguien pudiera orientarme lo
> agradeceria, porque incluso ejecutando el ejemplo del man
> debconf-devel(7) no se genera nada.
>
> Saludos
>
> Juan Carlos
¿has descomentado la línea: #dh_installdebconf en el dichero rules?
De todas maneras, lo que que quieres hacer, huele más a un script
postinstall usando dialog, que a una configuración crítica que requiera
intervención de root. Al menos el ejemplo que pones.
Saludos
Reply to: