私はdebパッケージをコンパイルしていますが、dpkg-buildpackageを実行すると次のようになります:
dpkg-shlibdeps: error: no dependency information found for /usr/local/lib/libopencv_highgui.so.2.3
...
make: *** [binary-Arch] Error 2
これは、依存関係を手動でインストールしたために発生します。依存関係をインストールする(またはcheckinstallを使用する)と、問題が修正されることを知っています。依存関係のチェックに興味がないので、とにかくパッケージを生成したいと思います。 dpkg-shlibdepsにオプション--ignore-missing-info
これは、依存関係情報が見つからない場合の失敗を防ぎます。しかし、dpkg-buildpackageとdpkg-buildpackageがdpkg-shlibdepsを呼び出しているので、このオプションをdpkg-shlibdepsに渡す方法がわかりません...
私はすでに試しました:
Sudo dpkg-buildpackage -rfakeroot -d -B
そして:
export DEB_DH_MAKESHLIBS_ARG=--ignore-missing-info
ルートとして。
何か案は?
使用する:
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
ルールファイルにdh_shlibdeps呼び出しが含まれていない場合。あなたが持っている場合、それは通常の場合です
%:
dh $@
その唯一のルールとして...上記では、dh_shlibdepsの前にスペースではなくタブを使用する必要があります
そのフラグを単に無視したい場合は、debian/rules行を次のように変更します。
dh_shlibdeps
に:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
さらに別の方法は、ビルドスクリプトを変更せずに、1つのファイルを作成するだけです。
次の形式で_debian/shlibs.local
_を作成することにより、 local shlib overrides を指定できます:_library-name soname-version dependencies
_
たとえば、次の(トリミングされた)_ldd /path/to/binary
_出力が与えられた場合
_libevent-2.0.so.5 => /usr/lib/libevent-2.0.so.5 (0x00007fc9e47aa000)
libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007fc9e4161000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fc9e3b1a000)
_
_debian/shlibs.local
_の内容は次のとおりです。
_libevent-2.0 5 libevent-2.0
libgcrypt 20 libgcrypt
libpthread 0 libpthread
_
「依存関係」リスト(3列目)は100%正確である必要はありません-ライブラリ名自体を再度使用するだけです。
もちろん、これは_/var/lib/dpkg/info
_(これらのオーバーライドのインスピレーションとして使用できる)で定義されたこのようなものを持つ健全なdebianシステムでは必要ありません。私のものは、健全なdebianシステムではありません。
エラーを単に無視するのではなく、エラーの原因を修正することもできます。通常、エラーが発生した共有ライブラリを含むパッケージ内のpackage.shlibs
またはpackage.symbols
ファイルが見つからないか、正しくありません。 。
[1] dpkg-shlibdeps
がpackage.shlibs
応答を使用する方法を文書化します。 package.symbols
、files、[2]は、package.shlibs
およびpackage.symbols
ファイルの形式を文書化しています。
エクスポートのスペルを間違えました。次のようになります。
export DEB_DH_SHLIBDEPS_ARGS_ALL=--dpkg-shlibdeps-params=--ignore-missing-info
dpkg-buildpackageはmakeを使用してdebian/rulesを処理します。このプロセスでは、dpkg-buildpackageはdpkg-shlibdepsを呼び出す場合があります。
したがって、パッケージ構築プロセスの一部を変更して渡す適切な方法は、debian/rulesを編集することです。実際のdebian/rulesを見ることなく、これ以上ヒントを与えることは困難です。
これを使用できます:
dh_makeshlibs -a -n
dh_installの直後