私の最近の作業には多くのDebianパッケージが含まれており、主な参照として Debian New Maintainers 'Guide を使用しています。
私が完全に理解していないのは、${shlibs:Depends}
を特定のパッケージおよびバージョンに解決する方法です。 「方法」とは詳細な手順変数${shlibs:Depends}
からDepends
フィールドのパッケージの最終リストまでです。
第4章 と言う:
dh_shlibdeps(1)は、バイナリパッケージの共有ライブラリの依存関係を計算します。 ELF実行可能ファイルとバイナリパッケージごとに見つけた共有ライブラリのリストを生成します。このリストは、$ {shlibs:Depends}を置き換えるために使用されます。
私が本当に興味を持っているのは、使用されている情報源のような「ELF実行可能ファイルとバイナリパッケージごとに見つかった共有ライブラリのリストを生成する」の詳細な手順だと思います。
また、Debianポリシーマニュアルのセクション "8.6.4。shlibsシステム" も確認しました。情報源は示されていますが、詳細な手順についても触れられていないようです。
私はきっとdh_shlibdeps
スクリプトを調べて、それがどのように行われるかを理解することができますが、Perlをまだ学習していないため、そうすることに消極的です。 m気づいていないので、これはすでにカバーされています。そのような参照がない場合は、必ずコードを読みます。
ありがとう!
このトピックは私にとっても新しいものですが、ここでは何が収集されるか(正確にソートされない場合があります)、一部のグローバル設定ファイルが省略されています。
ldd
dpkg -S
deb-shlibs
objdump
deb-symbols
dpkg-gensymbols
debian/shlibs.local
dpkg-shlibdeps
debian/substvars .. shlibs:dependency-field
いくつかのツールは、シンボル解決で静かに複雑になり、依存パッケージではなく依存ライブラリで実行されるだけです。Debianパッケージビルダー用のlib Debianパッケージにlib情報を含めるだけです。とにかくあなたはチェックします:
man dpkg-shlibdeps
およびその他の関連するマンページは、下部のメモに記載されています。