Змусити apt-get (або здатність) запустити за допомогою -y, але не вимагати заміни файлів конфігурації?


71

Під час роботи apt-get -y install <packages ...>на Ubuntu 10.04 я хотів би apt-get(або aptitudeякщо це полегшує) не підказувати мені під час встановлення додаткових залежностей (поведінка -yнастільки, наскільки я це розумію), але не підказувати мені про перезапис конфігураційних файлів, замість цього припускаю зберігати існуючі завжди (що зазвичай за замовчуванням). На жаль, --trivial-onlyсхоже, це обернено -yта не впливає на підказку, що відображається, повідомляє manсторінка.

Зокрема , пакети ЗОШ , як samba, nullmailer, localepurgeі lighttpdзмусив мене взаємодіяти з терміналом, навіть якщо вся процедура була по сценарієм і призначається , щоб бути неінтерактивному.

Відповіді:


97

Ви можете використовувати:

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

Для конкретних пакетів, наприклад, mypackage1 mypackage2:

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

Джерело: 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";
}

Додаткову інформацію та інші параметри ви можете знайти в посібнику щодо dpkg на веб- сайті http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.html або man dpkgшукайте "confdef".


33
"Я вважаю, що це само собою зрозуміло" ... продовжує використовувати варіанти, які я ніколи не бачив, щоб хтось використовував для apt-get
notbad.jpeg

1
@ notbad.jpeg: Я вважаю, що зауваження було спрямоване на найменування цих варіантів. Я вважаю імена справді зрозумілими. Звичайно, знати, що ними користуватися, не було :-D
0xC0000022L

3
про що -y?
JDS

4
Дивіться також: linux.die.net/man/1/dpkg під --forceрозділом, він описує confoldта confdefпараметри. Також корисно: apt-config dumpвід askubuntu.com/questions/254129/…
thom_nic

3
"Пояснення" ... хм, я описував цей опис надзвичайно заплутаним, особливо варто використовувати їх у поєднанні чи ні. Той, що прояснив речі, був dpkg(1). Дякую @thom_nic.
Льойки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.