[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Uso de debconf al empaquetar en formato .deb



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

Reply to: