web-dev-qa-db-ja.com

apt-get(またはaptitude)を-yで実行しますが、構成ファイルの置換を要求しませんか?

Ubuntu 10.04でapt-get -y install <packages ...>を実行するとき、apt-get(または、それが簡単になった場合はaptitude)を追加依存関係のインストール時にプロンプ​​トを表示しないようにします(-yの動作it)およびnot構成ファイルの上書きについてプロンプトを表示し、代わりに既存のファイルを常に保持することを想定します(通常はデフォルトです)。残念ながら、--trivial-only-yの逆のようで、manページによると、表示されるプロンプトには影響しません。

特にsambanullmailerlocalepurge、およびlighttpdなどのパッケージでは、手順全体がスクリプト化されていて、対話方式。

69
0xC0000022L

次を使用できます。

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

http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.html またはman dpkgのdpkgマニュアルに詳細とオプションがあります。すなわち、「confdef」を探します。

96
Savvas Radevic