5

たとえば、libmemcached を使用するアプリケーションを維持しています。libmemcached5 または libmemcached6 を使用してコンパイルし、依存関係として libmemcached5、libmemcached6 または libmemcached5|libmemcached6 を指す .deb パッケージをビルドすることもできますが、実際には私のバイナリはそのうちの 1 つだけでコンパイルされます。この問題を解決して、ユーザー側の依存関係をアップグレード/ダウングレードせずにパッケージを展開する最善の方法は何ですか?

4

1 に答える 1

1

リポジトリを使用している場合、またはアプリの複数のコンパイル済みバージョンが受け入れられる場合、最善の策は、アプリを libmemcached5 で 1 回、libmemcached6 で 1 回、2 回コンパイルし、異なるパッケージ名で個別にパッケージ化し、.適切なものを自動的にインストールするための仮想パッケージ:

 Package:   myapplication-memchched5
 Version:   1.3.17-1
 Depends:   libmemcached5
 Provides:  myapplication
 Conflicts: myapplication
 Replaces:  myapplication

 Package:   myapplication-memchched6
 Version:   1.3.17-1
 Depends:   libmemcached6
 Provides:  myapplication
 Conflicts: myapplication
 Replaces:  myapplication

他にインストールする必要があるものに基づいて、またはaptitude install myapplicationのいずれかが自動的に選択されるようになりました。myapplication-memchched5myapplication-memchched6

于 2012-11-15T12:35:44.037 に答える