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


71

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

特定のパッケージのようにオーシュsambanullmailerlocalepurgeおよび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";
}

http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.htmlのdpkgマニュアルで詳細とオプションを見つけることができますまたはman dpkg、「confdef」を探します。


33
「これは
一目瞭然

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。
Lloeki
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.