適切な更新は常に古い構成ファイルを上書きします。

適切な更新は常に古い構成ファイルを上書きします。

私はコードをUbuntucoreベースの16.04 LTSにdebパッケージ(cmakeで構築し、CpackDebでパッケージ化)で構築して配布しています。パッケージは設定ファイルなどをインストールします。更新中に古い設定ファイルを保持するためにapt / apt-getを取得できません。編集するかどうかにかかわらず、すべてのテストケースで以前の設定を自動的に上書きします。私が試したこと:

$ apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install <package>

$ export DEBIAN_FRONTEND=noninteractive ; apt-get install -y -o Dpkg::Options::="--force-confold" <package>

また、いくつかの変更があります。結果は常に同じです。つまり、古い設定ファイルを自動的に上書きします。適切なバージョンは1.2.31で、arm64プロセッサを使用しています。

たぶん私はdebを正しくパッケージしていませんか?私のプロフィールは単にインストール可能なプロフィールです。設定ファイルの特別な要件があるかどうかわかりません。もしありますか?

答え1

conffilesコントロールにファイルを含める必要がありますcontrol.tar.gz。パッケージ作成時に使用dpkg-debこのファイルは、DEBIAN/conffilesDebianパッケージに含まれる各設定ファイルに対して1行だけである必要があります。各行は設定ファイルのフルパスを指定します。

バラよりhttps://manpages.debian.org/testing/dpkg-dev/deb-conffiles.5.en.html

このコンテンツを含めると、そのファイルはシステムにプロファイルとして登録され、自動的に上書きされません。


私はCPackDebを直接使用していませんが、ファイルを追加する方法への参照は次のとおりですcontrol.tar.gz

https://cmake.org/cmake/help/v3.0/module/CPackDeb.html?highlight=conffiles

set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
    "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm") 

関連情報