Far eseguire apt-get (o aptitude) con -y ma non richiedere la sostituzione dei file di configurazione?


71

Quando apt-get -y install <packages ...>eseguo Ubuntu 10.04 vorrei apt-get(o aptitudese ciò rende più semplice) non chiedermi di installare dipendenze aggiuntive (comportamento di -ycome ho capito) e non chiedermi di sovrascrivere i file di configurazione, invece suppongo di mantenere sempre quelli esistenti (che di solito è l'impostazione predefinita). Sfortunatamente --trivial-onlysembra essere il -ycontrario di e non influisce sul prompt che viene mostrato, secondo la manpagina.

In particolare pacchetti auch come samba, nullmailer, localepurgee lighttpdmi hanno costretto ad interagire con il terminale, anche se l'intera procedura è stata sceneggiato e destinata ad essere non interattiva.

Risposte:


97

Puoi usare:

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

Solo per pacchetti specifici, ad es. Mypackage1 mypackage2:

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

Fonte: 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";
}

Puoi trovare maggiori informazioni e più opzioni nel manuale di dpkg su http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.html o man dpkge cioè cercare "confdef".


33
"Credo che questo sia autoesplicativo" ... procede all'utilizzo di opzioni che non ho mai visto nessuno usare per apt-get
notbad.jpeg

1
@ notbad.jpeg: credo che l'osservazione fosse finalizzata alla denominazione di quelle opzioni. Trovo i nomi davvero autoesplicativi. Naturalmente sapere di usarli non era :-D
0xC0000022L

3
che dire -y?
JDS

4
Vedi anche: linux.die.net/man/1/dpkg nella --forcesezione, descrive le opzioni confolde confdef. Utile anche: apt-config dumpda askubuntu.com/questions/254129/…
thom_nic

3
"autoesplicativo" ... hmm, ho trovato questa descrizione estremamente confusa, soprattutto se usarli in combinazione o no. Quello che ha chiarito le cose è stato dpkg(1). Grazie @thom_nic.
Lloeki,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.