DebConf - Perguntas ao usuário na instalação de pacote .deb

Você criou um pacote .deb e está precisando fazer perguntas ao usuário para configuração do aplicativo que será instalado? Apresento-lhe o DebConf.

[ Hits: 12.569 ]

Por: paulo em 08/01/2013


Integrando um pacote com o recurso DebConf



O primeiro arquivo necessário para utilizarmos o DebConf é o arquivo "config", é através dele que a chamada para o DebConf é feita:

gedit config

#!/bin/sh -e

# Fonte da library do debconf.

. /usr/share/debconf/confmodule

# Chamada para ler meu arquivo "template"
# observe que é necessário ter essas entradas no arquivo

db_input high espaco-disco/cota
db_go

O segundo, e não menos importante, é o arquivo "templates":

gedit templates

Template: espaco-disco/cota
Type: string
Default: 400
Description: Informe o limite que o usuário poderá armazenar na conta (MB):
# Valor em MB que o sistema espaco-disco-labs mostre o limite em uso.

O terceiro arquivo é o "pulo do gato"!

Deve ser criando um arquivo chamado "postinst", que fará a leitura do que usuário digitou no momento da instalação. No meu caso, criei um arquivo armazenando esse valor:

gedit postinst

#!/bin/sh -e

# Origem da library

. /usr/share/debconf/confmodule

#Obtenho o que o usuário digitou
db_get espaco-disco/cota
#Jogo o valor para o arquivo - a variável RET veio através do confmodule
echo $RET>/usr/share/espaco_disco_labs/limite_conta
#Muda a permissão da pasta para todos executarem
chmod -R 755 /usr/share/espaco_disco_labs/

O quarto arquivo serve para a remoção do pacote e, consequentemente, a exclusão do mesmo do sistema operacional, inclusive da base de dados do DebConf.

gedit postrm

if [ "$1" = "purge" -a -e /usr/share/debconf/confmodule ]; then
    # Source debconf library.
    . /usr/share/debconf/confmodule
    # Remove my changes to the db.
    db_purge
fi

O quinto arquivo necessário é o mesmo arquivo mostrado no capítulo acima, o arquivo "control".

Com todos eles criados e revisados, vamos à criação do pacote:

dpkg-deb -b pasta_deb meu_primeiro_deb.deb

Testando para ver se funciona tudo corretamente:

dpkg -i meu_primeiro_deb.deb

Solução de problemas

Durante os meus primeiros testes, tentava instalar o pacote e nada, foi aí que descobri o local que as templates ficavam armazenadas:

sudo gedit /var/cache/debconf/config.dat

* Tome cuidado para apagar somente o registro correspondente à sua template.


É só isso!

Página anterior    

Páginas do artigo
   1. O problema a ser resolvido com o DebConf
   2. Criando a estrutura básica de um pacote
   3. Integrando um pacote com o recurso DebConf
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Dando uma nova cara ao Ubuntu

Converter uma distribuição Linux para rodar no coLinux

Configurando PHP com Apache2 no Linux

Rsyslog - Gerenciamento centralizado de logs

Configurando o modem ZTE MF626 com Vivo3G no Debian

  
Comentários
[1] Comentário enviado por eldermarco em 09/01/2013 - 10:14h

Esse recurso é bastante interessante. É uma pena que em distros RPM não existe um desse tipo. Talvez até dê pra fazer (na base da gambiarra), mas pacotes rpm não tem a intenção de serem interativos.

[2] Comentário enviado por fs.schmidt em 09/01/2013 - 14:57h

Parabéns, excelente artigo, mt bem escrito ! Você publicou o artigo exatamente na semana que precisei utilizar. :-)


[3] Comentário enviado por WagNasc em 21/01/2013 - 10:58h

Parabéns, ótimo artigo. Vai me ajudar bastante.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts