GNU/Linux >> Linux の 問題 >  >> Linux

Shlibsによって設定された依存関係パッケージのバージョンをオーバーライドします:Debに依存しますか?

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 およびpbuilderpbuilder 特に、複数のディストリビューションに基づいて構築するように簡単に設定できます。

本当に shlibs:Dependsをオーバーライドしたい 、.substvarsを編集できます ビルド中にdpkg-shlibdepsの後に生成されたファイル 実行しました:

override_dh_shlibdeps:
    dh_shlibdeps
    sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars

Linux
  1. LinuxでRPMまたはDEBパッケージからインストールされたファイルを一覧表示する方法

  2. Ubuntuでパッケージ、PPA、Aptリポジトリの優先度を設定する方法

  3. インストールする前にLinuxパッケージのバージョンを確認する方法

  1. Dpkg -iまたはAptでDebファイルをインストールする方法は?

  2. Debパッケージの依存関係リストを確認する方法は?

  3. 更新されたパッケージのバージョン?

  1. Linuxでパッケージバージョンを見つける方法

  2. LinuxでYarnPackageManagerをインストールして使用する方法

  3. yumを使用して特定のバージョンのパッケージをインストールする方法は?