GNU/Linux >> Linux Esercitazione >  >> Linux

Aggiornamento dist Debian non interattivo al 100%.

Soluzione 1:

Se imposti DEBIAN_FRONTEND=noninteractive (per impedire la visualizzazione dei prompt debconf) e aggiungere force-confold e force-confdef al tuo /etc/dpkg/dpkg.cfg file, dovresti avere un'esperienza di installazione del pacchetto completamente non interattiva. Qualsiasi pacchetto che ti richiede ancora informazioni ha un bug critico per il rilascio (e lo dico sia come drogato di automazione e come sviluppatore Debian).

Soluzione 2:

Florian Lohoff ha pubblicato un modo per ottenere ciò che womble ha suggerito in un singolo comando:

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

Ovviamente potresti anche usare -o Dpkg::Options::="--force-confnew --force-confdef" (cercare confnew nella pagina man di dpkg). Non sono sicuro in quali casi questo farebbe la differenza però. Personalmente ho bisogno dell'aggiornamento non interattivo per aggiornare le immagini vanilla, nel qual caso suppongo di scegliere sempre il nuovo file di configurazione (senza --force-confdef ) è una cosa ragionevole.

Soluzione 3:

Anche se la risposta di womble sopra è generalmente buona, non ha funzionato per me e ho dovuto fare qualche ricerca aggiuntiva per rimanere incustodita al 100%. Ho pensato di condividere il risultato in modo conciso per rendere le cose più semplici per i futuri visitatori.

Quello che segue è uno script che verrà eseguito secondo le raccomandazioni sull'aggiornamento delle note di rilascio di Debian 8 (principalmente) insieme a flag e variabili d'ambiente che lo renderanno incustodito. (il echo sono solo per il debug e potrebbero essere rimossi, anche se consiglio di tenerli così se lo script si blocca saprai dove)

#!/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

Soluzione 4:

>=Apt 1.1

Se stai usando Apt 1.1 o superiore, --force-yes è stato deprecato, quindi devi usare le opzioni che iniziano con --allow invece, ad es. --allow-downgrades , --allow-remove-essential , --allow-change-held-packages .

Quindi il comando è:

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

Fonte:CFE-2360:Rendi consapevole la versione del modulo del pacchetto apt_get.

Correlati:

  • apt-get update non interattivo
  • Come faccio a chiedere ad apt-get di saltare eventuali passaggi di configurazione post-installazione interattiva?
  • Aggiornamento apt non interattivo

Linux
  1. Debian – Apt-get – Autoremove vuole disinstallare Gnome?

  2. Installa GitLab su Debian 10

  3. Installa Java 8 in debian Jessie

  4. apt-get update segnala errori GPG

  5. yum equivale a apt-get upgrade vs apt-get dist-upgrade?

Debian contro CentOS

Come installare Docker su Debian 8 Jessie

Debian:come eseguire programmi a 32 bit su una Debian/ubuntu a 64 bit?

Debian:quanto è fluido l'aggiornamento del kernel Linux in Debian 8.5?

Come utilizzare apt-get reinstall su Debian e Ubuntu

Come installare il vero Firefox su Debian?