web-dev-qa-db-ja.com

Debian-パッケージをアップグレードし、設定ファイルに変更があった場合はどうすればよいですか?

私はシステム管理に不慣れで、学生グループのサーバーの管理を手伝っています。パッケージをアップグレードしていて、構成ファイルに変更がある場合のベストプラクティスは何でしょうか。私は違いを見ていて、追加する重要なものがあるように見えない限り、通常は古いバージョンをそのままにして、そうでなければ構成ファイルを手動でkdiff3とマージしますが、それを行うためのより良い方法はありますか?

また、古いファイルを自分でどこかにバックアップする必要がありますか、それともdpkgが自動的にバックアップを作成しますか?古いバージョンの設定ファイルの一部のディレクトリに.oldファイルがあることに気付くことがありました。

この問題は、私がこのグループに不慣れであるため、なぜいくつかの変更がそのままであるのかわからないという事実によって複雑になっていますが、疑わしい場合は、既存のバージョンを延期しています。

ちなみに、具体的にお願いします。たとえば、dpkgがY/N/I/O/D/etc全体を表示するように求められたら、どうしますか?古いファイルをバックアップし、新しいファイルをインストールしてからマージしますか、それともそのncursesプロンプトにいるときにファイルをマージするためのより良い方法はありますか?

8
Ibrahim

それはそれを行うための合理的な方法のようです。私が約15年間やってきたことと似ています(1994年からdebianを使っています)。それはいつも私のために働いています:)

私は、構成ファイルを変更した場合、それには正当な理由があり、新しいデフォルトの構成ファイルの何よりも変更が重要である可能性が高いという基本的な仮定から始めます。

次に、構成と新しいパッケージバージョンの両方を調べます。

  1. 違いは重要ではないか、私の設定に関係がないため、完全に無視してください。

  2. 新しい構成から既存の構成に役立つものをすべてマージします。

  3. 新しいものがたくさんあり、保持したい変更が少ししかない場合は、逆の操作を行い、変更を新しい構成ファイルにマージしてから使用します。

私はこれに特化したツールやGUIツールを使用していません。 'diff -u'以下とviに加えて、sedやPerlなどの標準的なテキスト処理ツールを使用することもあります。 colordiffも、diff出力が画面一杯以上の場合に最適です。

9
cas

私の同様の質問への答えを探してこの投稿を見つけました。

結局私がやったことは、ターミナルを開くことを選択し、meldとの3ウェイマージを行うことです。

meld file.conf file.conf.dpkg-old file.conf.dpkg-new

結果をfile.confに保存し、続行します

1
Nick Andrik

Craig Sandersの回答には同意しますが、注意点を1つ追加する必要があります。多くのアップグレード中(通常はリリース間-Hardy-> Intrepidなど)、aptは構成ファイルを変更していないときに変更として報告します。構成ファイルを変更していないと確信できる場合は、古いファイルをダンプして、パッケージメンテナーのバージョンを保持することを選択します。

1
Schof

はい、最善の方法は、IMHO、メンテナバージョンを取得し、カスタマイズされた値をレポートすることです。

このようにして、更新されたコメント、コメントアウトされたデフォルト値などを含む、最新の構成ファイルを確実に入手できます。

新しい設定ファイルのバージョンが原因で更新プロセスで競合が発生した場合は、バージョンとメンテナのバージョンを最適に保つことをお勧めします。確認するファイルをメモしてから、手動でファイルを編集して相違点をマージします。手作業で(vimdiffは非常に強力な方法ですが、kdiffも良い選択です:)

覚えておくべき非常に重要なことは、カスタム構成ファイルが古くなるのを避ける

私の2セント:)

0
drAlberT