Czy apt-get (lub aptitude) działa z opcją -y, ale nie wyświetla monitu o zamianę plików konfiguracyjnych?

71

Podczas uruchamiania apt-get -y install <packages ...>na Ubuntu 10.04 chciałbym apt-get(lub aptitudejeśli to ułatwi) nie monitować mnie podczas instalowania dodatkowych zależności (zachowanie w -ymoim rozumieniu) i nie pytać mnie o zastąpienie plików konfiguracyjnych, zamiast tego zakładaj, że zawsze zachowuję istniejące (co zwykle jest ustawieniem domyślnym). Niestety --trivial-onlywydaje się być odwrotnością -yi nie wpływa na wyświetlane okno, zgodnie ze manstroną.

W poszczególnych pakietach auch jak samba, nullmailer, localepurgei lighttpdzmusiły mnie do interakcji z terminalem, choć cała procedura została skrypty i miało być non-interactive.

0xC0000022L
źródło

Odpowiedzi:

97

Możesz użyć:

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

Tylko dla określonych pakietów, np. Mypackage1 mypackage2:

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

Źródło: 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";
}

Więcej informacji i więcej opcji można znaleźć w podręczniku dpkg na stronie http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.html lub man dpkgnp. Poszukać „confdef”.

Savvas Radevic
źródło
33
„Wierzę, że to jest oczywiste” ... przechodzi do korzystania z opcji, których nigdy wcześniej nie widziałem dla apt-get
notbad.jpeg
1
@ notbad.jpeg: Uważam, że ta uwaga miała na celu nazywanie tych opcji. Uważam, że nazwy rzeczywiście są oczywiste. Oczywiście znajomość ich użycia nie była:
0xC0000022L
3
co -y?
JDS
4
Zobacz także: linux.die.net/man/1/dpkg w --forcesekcji, opisuje confoldi confdefopcje. Również pomocne: apt-config dumpfrom askubuntu.com/questions/254129/…
thom_nic
3
„oczywiste”… hmm, stwierdziłem, że ten opis jest bardzo mylący, szczególnie, czy używać ich w połączeniu, czy nie. Ten, który wszystko wyjaśnił, był dpkg(1). Dzięki @thom_nic.
Lloeki