3

同じ構成ファイルと設定を使用するようにすべてのマシンを自動的に構成する debian パッケージを構築しようとしています。

たとえば、alter /etc/default/hostapd などを設定しようとしています。私は現在、dh_install を使用して、必要な構成でファイルを /etc/default/hostapd にコピーすることでこれを行っています。

これにより、次のエラーが発生します。

trying to overwrite '/etc/default/hostapd', which is also in package hostapd

/etc/default/hostapd などの設定を上書きする debian パッケージを作成する正しい方法は何ですか?

4

1 に答える 1

4

エラーの理由は、システムにファイルを書き込むパッケージが所有者としてマークされているためです。2 つのパッケージが同じファイルを所有している場合、deb メカニズムはそれを好みません。

最良のオプションは、他のパッケージのファイルの名前を別の名前に変更するために dpkg-divert を使用することです。preinst スクリプトに、次のコマンドを入力します (パッケージの名前がmy_packageであると仮定します。

dpkg-divert --divert /etc/default/hostapd.saved. my_package --package my_package --rename --/etc/default/hostapd を追加

postrm スクリプトでは、反対のコマンドを入力する必要があります (正確な構文を正しく取得するには、テストされていない RTFM を使用します)。

dpkg-divert --divert /etc/default/hostapd.saved. my_package --package my_package --rename --remove /etc/default/hostapd

少なくとも過去には、debian 制御ファイルに「conffile」フィールドを配置する、より単純な (安全性は劣りますが) オプションがありました。これは、このパッケージが別のパッケージのファイルを上書きするファイルをインストールすることをシステムに伝えます。ただし、アンインストールした場合に問題が発生する可能性があるため、この方法をお勧めするかどうかはわかりません。

于 2012-12-20T14:27:12.757 に答える