GNU/Linux >> Tutoriels Linux >  >> Linux

Mise à niveau de distribution Debian 100 % non interactive

Solution 1 :

Si vous définissez DEBIAN_FRONTEND=noninteractive (pour empêcher l'apparition des invites debconf) et ajoutez force-confold et force-confdef à votre /etc/dpkg/dpkg.cfg fichier, vous devriez avoir une expérience d'installation de package complètement non interactive. Tout paquet qui vous demande encore des informations a un bogue critique pour la publication (et je dis cela à la fois en tant que drogué de l'automatisation et en tant que développeur Debian).

Solution 2 :

Florian Lohoff a publié un moyen d'obtenir ce que womble a suggéré en une seule commande :

DEBIAN_FRONTEND=noninteractive \
apt-get \
-o Dpkg::Options::="--force-confnew" \
--force-yes \
-fuy \
dist-upgrade

Bien sûr, vous pouvez également utiliser -o Dpkg::Options::="--force-confnew --force-confdef" (recherchez la page de manuel dpkg pour confnew). Je ne sais pas dans quels cas cela ferait une différence cependant. J'ai personnellement besoin de la mise à niveau non interactive pour mettre à jour les images vanille, auquel cas je suppose que je choisis toujours le nouveau fichier de configuration (sans --force-confdef ) est une chose raisonnable.

Solution 3 :

Même si la réponse de womble ci-dessus est généralement bonne, cela n'a pas fonctionné pour moi et j'ai dû faire des recherches supplémentaires pour rester à 100% sans surveillance. J'ai pensé partager le résultat de manière concise pour simplifier les choses pour les futurs visiteurs.

Ce qui suit est un script qui s'exécutera selon les recommandations de mise à jour des notes de publication de Debian 8 (principalement) avec des indicateurs et des variables d'environnement qui le rendront sans surveillance. (le echo s sont juste pour le débogage et peuvent être supprimés - bien que je recommande de les conserver, donc si le script est bloqué, vous saurez où)

#!/bin/bash

apt-get remove apt-listchanges --assume-yes --force-yes &&

#using export is important since some of the commands in the script will fire in a subshell
export DEBIAN_FRONTEND=noninteractive &&
export APT_LISTCHANGES_FRONTEND=none &&

#lib6c was an issue for me as it ignored the DEBIAN_FRONTEND environment variable and fired a prompt anyway. This should fix it
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections &&

echo "executing wheezy to jessie" &&
find /etc/apt -name "*.list" | xargs sed -i '/^deb/s/wheezy/jessie/g' &&

echo "executing autoremove" &&
apt-get -fuy --force-yes autoremove &&

echo "executing clean" &&
apt-get --force-yes clean &&

echo "executing update" &&
apt-get update &&

echo "executing upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy upgrade &&

echo "executing dist-upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy dist-upgrade

Solution 4 :

>=Apt 1.1

Si vous utilisez Apt 1.1 ou supérieur, --force-yes est obsolète, vous devez donc utiliser les options commençant par --allow à la place, par ex. --allow-downgrades , --allow-remove-essential , --allow-change-held-packages .

Donc la commande est :

DEBIAN_FRONTEND=noninteractive \
  apt-get \
  -o Dpkg::Options::=--force-confold \
  -o Dpkg::Options::=--force-confdef \
  -y --allow-downgrades --allow-remove-essential --allow-change-held-packages \
  dist-upgrade

Source :CFE-2360 : Rendez compte de la version du module de package apt_get.

Connexe :

  • apt-get update non interactif
  • Comment puis-je demander à apt-get d'ignorer les étapes de configuration post-installation interactives ?
  • Mise à jour apt non interactive

Linux
  1. Debian – Apt-get – Autoremove veut désinstaller Gnome ?

  2. Installer GitLab sur Debian 10

  3. Comment installer le vrai Firefox sur Debian ?

  4. apt-get update signale des erreurs GPG

  5. yum équivalent à apt-get upgrade vs apt-get dist-upgrade ?

Debian contre CentOS

Comment installer MySQL v5.7 en utilisant apt-get sur Debian 8 Jessie

Comment installer Docker sur Debian 8 Jessie

Debian – Dans quelle mesure la mise à niveau du noyau Linux dans Debian 8.5 est-elle fluide ?

Comment utiliser apt-get reinstall sur Debian et Ubuntu

Installer Java 8 dans debian Jessie