質問: Ubuntu向けの自作アプリを作成しています。debパッケージで配布するので`DEBIAN/control`の`Depends:`に依存パッケージ情報を記述しておき、debパッケージをビルドしています。 私のアプリはOpenSSLを使用するので、`libssl`が必要なのですが、Ubuntu18におけるそれは`libssl1.0.0`(1.0.2g)で、Ubuntu19におけるそれは`libssl1.1`(1.1.1b)となっています。ここで問題なのは、「`libssl`」というパッケージ名ではなく、「`libssl1.0.0`」と「`libssl1.1`」というように、パッケージ名自体にバージョン番号が組み込まれており、これが意味するところは、libssl1.0とlibssl1.1は関係ない別のものとして、Ubuntu標準パッケージに収められていることです。 私のアプリは今までUbuntu16/18を対象としており、`Depends: libssl1.0.0`のように定義されているため、これをUbuntu19にインストールしようとすると、依存パッケージが解決できないとしてエラーになります。できればUbuntu16/18およびそれ以降に対応できるパッケージを作りたいです。 この解決方法にはどのようなものがあるでしょうか? * `libssl1.0.0`または`libssl1.1`のどちらにも対応できる`Depends:`の書き方がある? * あきらめてlibssl1.1系用パッケージを別に作る * OpenSSLをスタティックリンクする * その他いいアイディア
回答: 共有ライブラリの依存関係は以下で済むはずですが。 ``` Depends: ${shlibs:Depends} ``` ビルド時の依存関係は: ``` Build-Depends: libssl-dev ``` このように、`debian/control` としては OpenSSL バージョンを意識しなくても済みます。