GNU/Linux >> LINUX-Kenntnisse >  >> Linux

100 % nicht-interaktives Debian-Dist-Upgrade

Lösung 1:

Wenn Sie DEBIAN_FRONTEND=noninteractive einstellen (um zu verhindern, dass Debconf-Eingabeaufforderungen erscheinen) und fügen Sie force-confold hinzu und force-confdef zu Ihrem /etc/dpkg/dpkg.cfg -Datei sollten Sie eine vollständig nicht interaktive Paketinstallation erleben. Jedes Paket, das Sie immer noch zur Eingabe von Informationen auffordert, hat einen veröffentlichungskritischen Fehler (und das sage ich als Automatisierungs-Junkie und als Debian-Entwickler).

Lösung 2:

Florian Lohoff hat einen Weg gepostet, um das, was Womble vorschlägt, in einen einzigen Befehl zu packen:

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

Natürlich können Sie auch -o Dpkg::Options::="--force-confnew --force-confdef" verwenden (Suchen Sie in der Manpage von dpkg nach confnew). Ich bin mir jedoch nicht sicher, in welchen Fällen dies einen Unterschied machen würde. Ich persönlich brauche das nicht-interaktive Upgrade, um Vanilla-Images auf den neuesten Stand zu bringen, in diesem Fall nehme ich an, dass ich immer die neue Konfigurationsdatei (ohne --force-confdef ) ist eine vernünftige Sache.

Lösung 3:

Obwohl die obige Antwort von Womble im Allgemeinen gut ist, hat sie bei mir nicht funktioniert und ich musste einige zusätzliche Nachforschungen anstellen, um 100% unbeaufsichtigt zu bleiben. Ich dachte, ich teile das Ergebnis kurz, um die Dinge für zukünftige Besucher einfacher zu machen.

Das Folgende ist ein Skript, das gemäß den Upgrade-Empfehlungen der Debian 8-Versionshinweise (meistens) zusammen mit Flags und Umgebungsvariablen ausgeführt wird, die es unbeaufsichtigt machen. (die echo s sind nur zum Debuggen und könnten entfernt werden - obwohl ich empfehle, sie zu behalten, damit Sie wissen, wo das Skript hängen bleibt)

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

Lösung 4:

>=Apt 1.1

Wenn Sie Apt 1.1 oder höher verwenden, --force-yes ist veraltet, daher müssen Sie die Optionen verwenden, die mit --allow beginnen stattdessen z. --allow-downgrades , --allow-remove-essential , --allow-change-held-packages .

Der Befehl lautet also:

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

Quelle:CFE-2360:Machen Sie apt_get Paketmodulversion bewusst.

Verwandte:

  • apt-get update nicht interaktiv
  • Wie fordere ich apt-get auf, alle interaktiven Konfigurationsschritte nach der Installation zu überspringen?
  • Nicht interaktives Apt-Upgrade

Linux
  1. Debian apt-get wheezy sources.list

  2. Debian – Pakete automatisch aktualisieren?

  3. Installieren Sie OpenVPN-Server auf Debian 11/Debian 10

  4. Installieren Sie GitLab unter Debian 10

  5. Wie installiere ich den echten Firefox unter Debian?

Debian vs. CentOS

So installieren Sie Docker unter Debian 8 Jessie

Debian – Wie reibungslos läuft das Upgrade des Linux-Kernels in Debian 8.5?

So verwenden Sie apt-get reinstall unter Debian und Ubuntu

apt-get update meldet GPG-Fehler

yum Äquivalent zu apt-get upgrade vs apt-get dist-upgrade?