Apt-get (veya yetenek) 'in -y ile çalışmasını sağlayın ancak yapılandırma dosyalarının değiştirilmesini istemeyin mi?


71

apt-get -y install <packages ...>Ubuntu 10.04 ile çalışırken , ek bağımlılıklar kurarken ( bunu anladığım şekilde davranış) benden istemem apt-get(ya aptitudeda bunu kolaylaştırırsa -y) ve yapılandırma dosyalarının üzerine yazmamı istemem , bunun yerine var olanları her zaman tutmayı varsay (bu genellikle varsayılandır). Maalesef , sayfaya göre gösterilen bilgi isteminin --trivial-onlytersi görünüyor -yve etkilenmiyor gibi görünüyor man.

Özellikle ambalajlarda olarak auch samba, nullmailer, localepurgeve lighttpdbütün prosedür senaryosunu ve etkileşimli olmayan olması gerekiyordu rağmen terminali ile etkileşime beni zorladı.

Yanıtlar:


97

Kullanabilirsin:

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

Sadece belirli paketler için, örneğin mypackage1 mypackage2:

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

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

En dpkg kılavuzda daha fazla bilgi ve daha fazla seçenek bulabilirsiniz http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.html ya man dpkgve yani "confdef" arayın.


33
"Bunun kendini açıklayıcı olduğuna inanıyorum" ... apt-get için hiç kimsenin kullanmadığını görmediğim seçenekleri kullanmaya devam ediyor
notbad.jpeg 10:15

1
@ notbad.jpeg: Açıklamanın bu seçeneklerin isimlendirilmesine yönelik olduğuna inanıyorum. İsimleri gerçekten kendi kendini açıklayıcı buluyorum. Tabii ki onları kullanmayı bilmek değildi :-D
0xC0000022L

3
Ne hakkında -y?
JDS

4
Ayrıca bakınız: bölüm altındaki linux.die.net/man/1/dpkg--force , confoldve confdefseçeneklerini açıklar . Ayrıca yararlı: apt-config dumpden askubuntu.com/questions/254129/...
thom_nic

3
“kendi kendini açıklayıcı” ... hmm, bu açıklamanın son derece kafa karıştırıcı olduğunu, özellikle kombinasyon halinde kullanılıp kullanılmayacağını buldum. Olayları temizleyen oydu dpkg(1). @Thom_nic Teşekkürler.
Lloeki
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.