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.255 ]

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

Criando um servidor DNS com o DJBDNS

Tutorial de instalação e pós-instalação do openSUSE Leap 42.2

Android - Emulando, Instalando e Removendo Aplicativos APK

Configuração do modem ADSL Siemens Santis

Apache básico

  
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