「knife cloudstack server create ...」を使用して新しいVMを構築したい。私のbootstrapテンプレートは、「apt-get update」と「apt-get -y upgrade」で始まります。
その後、アップグレードは次のように停止します。
10.190.113.11 Configuration file `/etc/nscd.conf'
10.190.113.11 ==> Modified (by you or by a script) since installation.
10.190.113.11 ==> Package distributor has shipped an updated version.
10.190.113.11 What would you like to do about it ? Your options are:
10.190.113.11 Y or I : install the package maintainer's version
10.190.113.11 N or O : keep your currently-installed version
10.190.113.11 D : show the differences between the versions
10.190.113.11 Z : start a Shell to examine the situation
10.190.113.11 The default action is to keep your current version.
10.190.113.11 *** nscd.conf (Y/I/N/O/D/Z) [default=N] ?
したがって、実際には2つの問題があります。
まず、デフォルトでapt-getで何かを実行できますか?明らかに、答えを提供する方法はありません。
第二に、質問に対する正しい答えがどうあるべきかさえ知りません。置き換えられる構成ファイルはテンプレートからのものです。 「nscd」で何ができるかはまだ調べていません。 (おそらく「Y」が正解ですが、質問の時点で行われた調査は困難です。)
プロンプトを表示しないように引数を渡すことができます。これは私にとってはうまくいきます。
apt-get update
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
--force-confold
(私の選択)がこれらを作成します「変更された構成ファイルに対して何を行いますか」質問のデフォルトはN
です(現在インストールされているバージョンを保持します)
--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).
警告-一部の変更された構成ファイルは、更新されたパッケージバージョンとの互換性がないため、システムが破損する可能性があります。 自動化ソリューションに展開する前にテストしてください。
インタラクティブな質問に絶対に答えたくない場合は、DEBIAN_FRONTEND
フロントエンド変数をnoninteractive
に設定します。
これはDEBIAN_FRONTEND=noninteractive apt-get upgrade
と同じくらい簡単です。
メッセージは表示されず、デフォルトが選択されます。ほとんどの場合、これは構成ファイルが変更されないことを意味し、構成ファイルが変更されていないすべての場所で*.dpkg-new
のような名前のファイルが残されます。その後、手動で変更を解決するか、構成管理システムなどを使用してローカル構成をシステムにプッシュできます。
第二に、私は質問に対する正しい答えが何であるべきかさえ知りません
[〜#〜] d [〜#〜]キーを押すと、違いが表示され、これを調べることができます。そのファイルを手動で変更したことがないことが確実な場合は、[〜#〜] y [〜#〜]を選択して置き換えることはおそらく安全です(バックアップのアップグレードを確認しましたRIGHT !!)。 [〜#〜] n [〜#〜]を選択すると、パッケージに大きな変更がなく、通常は変更ログ/リリースでカバーされない限り、95%の確率で古いファイルが保持されますupgrade/dist-upgradeコマンドを実行する前に読んだメモ。
その後、テスト環境で最初にコマンドを試してください。物事がうまくいかないかどうかを確認します。本当に分からない場合は、差分を取得し、パッケージと研究のドキュメントを読んでください。