Apt-get (oder aptitude) mit -y ausführen, aber nicht zum Ersetzen von Konfigurationsdateien auffordern?

71

Beim Laufen apt-get -y install <packages ...>auf Ubuntu 10.04 würde Ich mag apt-get(oder aptitudewenn das macht es einfacher) mir nicht aufgefordert , wenn zusätzliche Abhängigkeiten zu installieren (Verhalten -ywie ich es verstehe) und aber nicht veranlassen mich über Konfigurationsdateien überschreiben, sondern übernehmen die bestehenden zu halten immer (Dies ist normalerweise die Standardeinstellung). Leider --trivial-onlyscheint die Umkehrung -yder angezeigten Eingabeaufforderung der manSeite zu sein und diese nicht zu beeinflussen .

Insbesondere Paket Auch als samba, nullmailer, localepurgeund lighttpdhabe mich gezwungen , mit dem Terminal zu kommunizieren, auch wenn das gesamte Verfahren im Drehbuch und bedeutete nicht interaktiv zu sein.

0xC0000022L
quelle

Antworten:

97

Sie können verwenden:

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

Für nur bestimmte Pakete, zB mypackage1 mypackage2:

sudo apt-get update
sudo apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install mypackage1 mypackage2

Quelle: http://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/

Avoiding the conffile prompt

Every time that dpkg must install a new conffile that you have modified
(and a removed file is only a particular case of a modified file in dpkg’s eyes),
it will stop the upgrade and wait your answer. This can be particularly annoying for
major upgrades. That’s why you can give predefined answers to dpkg with the help
of multiple --force-conf* options:

    --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).

If you use Apt, you can pass options to dpkg with a command-line like this:

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

You can also make those options permanent by creating /etc/apt/apt.conf.d/local:

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}

Weitere Informationen und Optionen finden Sie im dpkg-Handbuch unter http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.html oder man dpkgund suchen Sie nach "confdef".

Savvas Radevic
quelle
33
"Ich glaube, das ist selbsterklärend" ... setzt fort, Optionen zu verwenden, die noch nie jemand für apt-get verwendet hat
notbad.jpeg 10.06.15
1
@ notbad.jpeg: Ich glaube, die Bemerkung hatte die Benennung dieser Optionen zum Ziel. Ich finde die Namen in der Tat selbsterklärend. Zu wissen, wie man sie benutzt, war natürlich nicht :-D
0xC0000022L
3
was ist -y?
JDS
4
Siehe auch: linux.die.net/man/1/dpkg In diesem --forceAbschnitt werden die Optionen confoldund beschrieben confdef. Auch hilfreich: apt-config dumpvon askubuntu.com/questions/254129/…
thom_nic 16.10.17
3
"selbsterklärend" ... hmm, ich fand diese Beschreibung äußerst verwirrend, insbesondere, ob man sie in Kombination verwendet oder nicht. Derjenige, der die Dinge geklärt hat, war dpkg(1). Danke @thom_nic.
Lloeki