Pular para o conteúdo

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.
paulo paulo oliveira
Hits: 13.415 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar

Parte 3: 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!

   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
Nenhum artigo encontrado.

OpenVPN para clientes Windows no Debian Squeeze

As melhores ferramentas de colaboração para Linux

Balanceamento de carga com 2 links no MikroTik

Configuração de Serviços

Colorindo seu terminal.

#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

Entre na sua conta para comentar.