たとえば、私はlibmemcachedを使用するアプリケーションを維持しています。 libmemcached5またはlibmemcached6を使ってコンパイルすることもできますし、libmemcached5、libmemcached6、またはlibmemcached5 | libmemcached6を依存関係とする.debパッケージをビルドすることもできますが、実際には私のバイナリは1つだけコンパイルされます。ユーザー側の依存関係をアップグレード/ダウングレードせずにパッケージを展開するためにこの問題を解決できる最良の方法は何ですか?異なるバージョンの1つの依存関係を持つパッケージをビルドおよびデプロイする方法は?
5
A
答えて
1
あなたのリポジトリを使用している場合、または複数のコンパイル済みバージョンのアプリケーションが受け入れられる場合は、アプリケーションを2回、libmemcached5で1回、libmemcached6で1回コンパイルし、別々のパッケージ名自動的に右のいずれかをインストールするには、仮想パッケージを使用します。
Package: myapplication-memchched5
Version: 1.3.17-1
Depends: libmemcached5
Provides: myapplication
Conflicts: myapplication
Replaces: myapplication
と今aptitude install myapplication
Package: myapplication-memchched6
Version: 1.3.17-1
Depends: libmemcached6
Provides: myapplication
Conflicts: myapplication
Replaces: myapplication
が自動的に選択するかmyapplication-memchched5
または他の何がインストールされる必要があるかに基づいています。