Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un dpkg-reconfigure non interactif ne tient pas compte de la base de réponses debconf

5 réponses
Avatar
Francois Lafont
Bonjour à tous,

Sur une Debian Squeeze, je souhaite reconfigurer le paquet exim4 de
manière non interactive mais avec des réponses pré-définies par mes
soins. J'ai tenté de m'y prendre de la manière suivante.

Sur une machine « modèle », je fais ça :

----------------------------------------------
dpkg-reconfigure exim4-config

# Et là, de manière interactive, je configure le
# paquet exim4-config comme cela me convient.

apt-get install debconf-utils
debconf-get-selections | grep '^exim4-config' > reponses
----------------------------------------------

Voilà, sur la machine « modèle », j'ai obtenu un fichier "reponses" qui
contient les réponses aux questions qui m'ont été posées au moment de la
commande dpkg-reconfigure.

Ensuite sur une nouvelle machine, j'importe le fichier "reponses" et je
fais :

----------------------------------------------
debconf-set-selections < reponses
dpkg-reconfigure --frontend=noninteractif exim4-config
----------------------------------------------

Et bien effectivement la re-configuration du paquet n'est pas
interactive mais le souci c'est qu'elle ne tient absolument pas compte
de mon fichier "reponses" et manifestement tout se passe comme si le
système avait choisi les réponses par défaut (mais elles sont
différentes de mes réponses à moi).

Avez-vous une solution à ce problème ? Précisément, comment faire pour
lancer un « dpkg-reconfigure » qui soit à la fois :
1. non interactif
2. et qui utilise comme réponses celles que j'aurais préalablement
définies selon mes goûts.

Merci d'avance pour votre aide.

--
François Lafont

5 réponses

Avatar
Fabien LE LEZ
On Sat, 29 Sep 2012 03:18:56 +0200, Francois Lafont
:

2. et qui utilise comme réponses celles que j'aurais préalablement
définies selon mes goûts.



Copier le répertoire /etc/exim de la machine correctement configurée
vers la nouvelle machine peut-être ?
Avatar
Damien Wyart
* Francois Lafont
in fr.comp.os.linux.configuration:
Avez-vous une solution à ce problème ? Précisément, comment faire pour
lancer un « dpkg-reconfigure » qui soit à la fois :
1. non interactif
2. et qui utilise comme réponses celles que j'aurais préalablement
définies selon mes goûts.



Cela ne semble pas possible, debconf est un simple cache de réponses :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug53207

La question a déjà été posée sur une liste Debian, mais est restée sans
réponse : http://lists.debian.org/debian-user/2007/10/msg00480.html

--
DW
Avatar
Francois Lafont
Le 29/09/2012 05:40, Fabien LE LEZ a écrit :

Copier le répertoire /etc/exim de la machine correctement configurée
vers la nouvelle machine peut-être ?



Ça fonctionnerait sans doute, mais j'aimerais bien passer par la méthode
du « debconf-get-selections / debconf-set-selections » que je trouve
très pratique, d'autant plus que dans le cas d'une *installation* de
paquet, ça marche parfaitement. Par exemple avec le paquet libpam-ldap
qui n'est pas installé par défaut sur une Squeeze, sur la machine
modèle, je fais :

----------------------------------------------
apt-get install libpam-ldap
# Je réponds aux questions selon mes goûts.
apt-get install debconf-utils
debconf-get-selections | grep '^libpam-ldap' > reponses
----------------------------------------------

Et ensuite sur une nouvelle machine, si je fais :

----------------------------------------------
debconf-set-selections < reponses
DEBIAN_FRONTEND=noninteractive apt-get install --yes libpam-ldap
----------------------------------------------

Ça marche impeccable, j'ai mon paquet libpam-ldap installé et configuré
selon mes goûts sans la moindre interactivité ! C'est frustrant que ça
ne fonctionne pas avec dpkg-reconfigure. A priori, rien d'intéressant
dans les options de dpkg-reconfigure.

Ou alors pour se ramener à cette situation, est-il possible de faire en
sorte de désinstaller le paquet exim4-config et uniquement celui-là puis
de le résinstaller ?

J'avais tenté un « dpkg --remove exim4-config » mais à cause des
dépendances je me fais jeter. Et si je passe par « apt-get
remove/install exim4-config », la suppression puis la réinstallation du
paquet exim4-config fait que je perd des paquets en cours de route et
devoir gérer les dépendances ça m'embête un peu (l'idée étant de garder
une méthode la plus simple possible).

--
François Lafont
Avatar
Francois Lafont
Le 29/09/2012 11:32, Damien Wyart a écrit :

Cela ne semble pas possible, debconf est un simple cache de réponses :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug53207



Ok, c'est bien dommage. En tout cas, même si c'est un simple cache,
apt-get (et sans doute dpkg du coup), lui, en tient compte. Du coup, si
ce n'est pas possible, j'en reviens à mon idée de désinstaller le paquet
exim4-config et seulement lui, puis de le réinstaller (seulement lui à
nouveau). Mais comment fait-on cela ?

La question a déjà été posée sur une liste Debian, mais est restée sans
réponse : http://lists.debian.org/debian-user/2007/10/msg00480.html



Avant de poster, j'ai vu ce fil, effectivement hélas sans réponse.
D'ailleurs, c'est toujours un peu frustrant de tomber sur un fil come ça
alors qu'on s'aperçoit qu'il coïncide très exactement à son problème. :-)

--
François Lafont
Avatar
Damien Wyart
* Francois Lafont
in fr.comp.os.linux.configuration:
j'en reviens à mon idée de désinstaller le paquet exim4-config et
seulement lui, puis de le réinstaller (seulement lui à nouveau). Mais
comment fait-on cela ?



apt-get --reinstall install exim4-config

mais je ne sais pas si ça va faire ce qu'il faut au niveau des fichiers
de configuration...

Sinon dpkg -r --force-depends exim4-config
(lire éventuellement le man de dpkg pour voir tous les types
de --force-things qui existent)

--
DW