私は/etc/
の下にインストールされるいくつかの設定ファイルを含むdebianパッケージを保守しています。ユーザーが通常の--purge
を実行するたびに常に自動的にapt-get remove mypackage
するようにパッケージを作成する方法はありますか?
その理由は、/ etcにいくつかの設定ファイルがあり、バイナリを削除するときに実際に削除する必要があるためです。そうしないと、奇妙な動作につながる可能性があります。しかし、私はまだそれらをconfファイルとして扱いたい、つまり、パッケージのアップグレードごとにaptがそれらを消去しないことを確認してください。ただし、パッケージをアンインストールするときに削除する必要があります。
現在、postrmスクリプトの/ etc confファイルを手動で削除しています。ただし、これには不幸な副作用があることがわかりました。ユーザーがパッケージをアンインストールしてから再インストールした場合、aptファイルはまだ存在していると考えられるため、confファイルは再インストールされません。だから、aptがconfファイルがなくなったことを知るように、私のpostrmで完全な「パージ」を手動でトリガーする方法はありますか?
Debianポリシーは、他のパッケージやシステムの変更に属するファイルをいじることを禁止しています。 (または、少なくともそうだと思う)
purge
の代わりにremove
を使用するようにユーザーに指示できます。
Sudo apt-get purge mypackage
設定ファイルを上書きする必要がある場合、debianはメンテナー設定ファイルをインストールするようユーザーに促すことがあります: http://www.debian.org/doc/manuals/maint-guide/dother.en.html#conffiles
ソフトウェアについて最も厄介なことの1つは、プログラムのカスタマイズに多大な時間と労力を費やし、変更をすべてアップグレードすることです。 Debianは、このような設定ファイルをconffilesとしてマークすることにより、この問題を解決します。 [55]パッケージをアップグレードするとき、古い構成ファイルを保持するかどうかを尋ねられます。
アップグレード中に自動的にそれを行うことができます:
apt-get -o Dpkg::Options::="--force-confnew" dist-upgrade
ソース: http://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/ および https://askubuntu.com/ a/104912/5538
これについてはわかりませんが、古いパッケージバージョンを完全に削除して新しいパッケージバージョンに置き換えることができると思います。
ここを読む: http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces
ターミナルを開き、このコマンドを入力します。
alias remove='apt-get remove --purge
Removeというエイリアスを作成し、remove --purgeを含めるように定義します。
たまにaptitude purge '~c'
これは、以前にパージされていないすべてをパージします。人々にそうするように勧めてください。