web-dev-qa-db-fra.com

Comment automatiser les fichiers de configuration modifiés lors de la mise à niveau APT-GET à Ubuntu 12

J'aime utiliser "Couteau Cloudstack Server Créer ..." pour construire un nouveau VM. Mon bootstrap Modèle démarre avec une "mise à jour APT-GET" et "APT-GET -Y Upgrade".

La mise à niveau s'arrête ensuite avec:

10.190.113.11 Configuration file `/etc/nscd.conf'
10.190.113.11  ==> Modified (by you or by a script) since installation.
10.190.113.11  ==> Package distributor has shipped an updated version.
10.190.113.11    What would you like to do about it ?  Your options are:
10.190.113.11     Y or I  : install the package maintainer's version
10.190.113.11     N or O  : keep your currently-installed version
10.190.113.11       D     : show the differences between the versions
10.190.113.11       Z     : start a Shell to examine the situation
10.190.113.11  The default action is to keep your current version.
10.190.113.11 *** nscd.conf (Y/I/N/O/D/Z) [default=N] ?

Donc, il y a vraiment deux problèmes:

Premièrement, puis-je obtenir apt-chercher à faire quelque chose par défaut? Évidemment, il n'y a aucun moyen de fournir une réponse.

Deuxièmement, je ne sais même pas quelle devrait être la bonne réponse à la question. Le fichier de configuration qu'il remplace provenait d'un modèle. Je n'ai pas encore levé les yeux sur ce que "NSCD" est même. (Vraisemblablement, "y" est la bonne réponse, mais la recherche impliquée au moment de la question est intimidante.)

13
Mojo

Vous pouvez passer des arguments pour éviter d'obtenir des invites. Cela fonctionne pour moi;

apt-get update
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

--force-confold (mon choix) fera ces "Que voulez-vous faire sur le fichier de configuration modifié" Questions par défaut sur N (Gardez votre version actuellement installée)

--force-confold: do not modify the current configuration file, the new version is installed with a .dpkg-dist suffix. With this option alone, even configuration files that you have not modified are left untouched. You need to combine it with --force-confdef to let dpkg overwrite configuration files that you have not modified.
--force-confnew: always install the new version of the configuration file, the current version is kept in a file with the .dpkg-old suffix.
--force-confdef: ask dpkg to decide alone when it can and Prompt otherwise. This is the default behavior of dpkg and this option is mainly useful in combination with --force-confold.
--force-confmiss: ask dpkg to install the configuration file if it’s currently missing (for example because you have removed the file by mistake).

AVERTISSEMENT - Certains fichiers de configuration modifiés peuvent casser votre système s'il est conservé et non compatible avec la version de package mis à jour. Veuillez le tester Avant de déployer des solutions d'automatisation.

15
Jossef Harush

Si vous ne voulez absolument pas répondre à des questions interactives, définissez la DEBIAN_FRONTEND variable de l'extrémité avant noninteractive.

Cela peut être aussi simple que DEBIAN_FRONTEND=noninteractive apt-get upgrade.

Vous n'obtiendrez aucun message et les valeurs par défaut seront choisies. Dans la plupart des cas, cela signifie que vos fichiers de configuration ne seront pas modifiés et vous resterez à gauche avec des fichiers nommés comme *.dpkg-new Pour tous les endroits où un fichier de configuration était intact. Vous pouvez ensuite résoudre manuellement les modifications ou pousser votre configuration locale au système à l'aide d'un système de gestion de configuration ou autre.

Deuxièmement, je ne sais même pas quelle devrait être la bonne réponse à la question devrait être

Frapper le [~ # ~ # ~] D [~ # ~ ~] La clé affiche la différence, que vous pouvez ensuite inspecter. Si vous êtes certain que vous n'avez jamais modifié manuellement ce fichier, choisir [~ # ~ # ~] y [~ # ~] Pour remplacer, il est probablement sûr (vous avez vérifié votre mise à niveau de sauvegarde droite !!). Choisir [~ # ~] n [~ # ~ ~] Il suffit de garder l'ancien fichier qui est également sûr de 95% du temps, à moins que l'emballage n'ait changé majeur, qui sont généralement couverts dans la modification/la libération Notes que vous avez également lues avant de courir la commande de mise à niveau/dist-mise à niveau.

Passé cela, essayez simplement la commande d'abord dans votre environnement de test. Voyez si les choses ne fonctionnent pas. Si vous n'êtes vraiment pas sûr d'obtenir le diff et de lire la documentation pour le colis et la recherche.

5
Zoredache