deb パッケージを別の名前のパッケージに置き換えるように指定するにはどうすればよいですか?

deb パッケージを別の名前のパッケージに置き換えるように指定するにはどうすればよいですか?

インストールされているシステム上のfoo既存のパッケージを置き換える必要があるDebian パッケージを作成しています。bar

もう読んだ:

https://www.debian.org/doc/debian-policy/ch-relationships.html

そして、正しい条項は次DEBIAN/controlのようになるはずだと結論付けました。

Provides: foo
Conflicts: bar
Replaces: bar

fooただし、すでにインストールされているシステムにパッケージをインストールしようとすると、と競合するbarためシステムが失敗します。foobar

Conflicts: barエントリを削除すると、dpkg両方のパッケージを並行してインストールできるようになりますが、fooを置き換える必要があるため、問題になりますbar

これを実現するための適切なファイル条項は何ですかcontrol?

Breaks代わりに以下を試しましたConflicts:

dpkg: regarding foo_DEV-22._i386.deb containing foo:
 foo breaks bar
  bar (version 3.2.2.1-x86NX4.4-x86) is present and installed.
  bar provides bar and is present and installed.
dpkg: error processing foo_DEV-22._i386.deb (--install):
 installing foo would break existing software
Errors were encountered while processing:
 foo_DEV-22._i386.deb

答え1

dpkg低レベルのツールです。目的の効果を得るには、パッケージをリポジトリに入れて追加すれば、sources.list(5)正しくapt install foo動作します。

答え2

既存のパッケージの名前を事前に変更しておき、後で必要なパッケージに置き換えてみてはいかがでしょうか?

このためには、以下の Debian 公式 wiki ページに記載されている方法に従う必要があります。

https://wiki.debian.org/Renaming_a_Package

関連情報