libmysqlcppconn7v5に依存するDebianパッケージを構築しています 。 libmysqlcppconn7v5を備えたUbuntuでビルドしています 1.1.9ただし、libmysqlcppconn7v5を持つDebianにインストールすることを目的としています。 1.1.7。
debian/control 次の行が含まれています:
Depends: ${shlibs:Depends}, ${misc:Depends}, libmysqlcppconn7v5 (>= 1.1.7)
パッケージがビルドされても、依存関係はlibmysqlcppconn7v5 (>= 1.1.9)のままです。
パッケージのビルド時にインストールしたよりも低いパッケージバージョンに依存させるにはどうすればよいですか?
承認された回答:
shlibs:Dependsの場合 最終的にlibmysqlcppconn7v5のバージョン1.1.9以降を指定することになります 、これは(理論的には)作成したバイナリがバージョン1.1.9以降でのみ使用可能なシンボルを使用することを意味します。したがって、パッケージは必ずしもlibmysqlcppconn7v5を使用するDebianで動作するとは限りません。 1.1.7、依存関係を上書きしても。 (パッケージにはシンボルまたはshlibsファイルが含まれていないため、ヒューリスティックは無効であるため、これをある程度修飾しています。)
原則として、Debianにインストールする場合は、Debianでパッケージをビルドする必要があります。これはUbuntuで行うのはそれほど難しいことではありません。 debootstrapを見てください 、sbuild およびpbuilder 。 pbuilder 特に、複数のディストリビューションに基づいて構築するように簡単に設定できます。
本当に shlibs:Dependsをオーバーライドしたい 、.substvarsを編集できます ビルド中にdpkg-shlibdepsの後に生成されたファイル 実行しました:
override_dh_shlibdeps:
dh_shlibdeps
sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars