Linuxリポジトリで不足しているバイナリシンボルを検出する


1

Linuxリポジトリに必要なすべてのバイナリシンボルが含まれていることを検証できるツールはありますか?バイナリシンボルに対するリポジトリの完全性を確認する必要があります。

つまり、リポジトリ内のすべての実行可能ファイルについて、すべての外部シンボル(によって報告されるnm -g)がこのリポジトリの共有ライブラリによって提供されることを知る必要があります。

今のところ、私のターゲットリポジトリはrpmやdeb、または特定のディストリビューションに制限されていません。そのようなツールが存在することを知っている必要がありますか?

私はそのためにグーグルに失敗しましたので、グーグルの少なくともキーワードに感謝します。


1
誰かが興味を持っている場合のために、ROSA Linux用のツールを作成しました(ディストリビューションおよびパッケージに依存しません)。 pypi.python.org/pypi/repochecker_binsym/0.9.4
gluk47

回答:


2

ALT linuxは、依存関係の一種としてset:versionsと呼ばれるものを実装しています。

set:versionsは、サブセット化を効率​​的に行うことができるコンパクトなシンボルエンコーディングです。つまり、ライブラリ内の一部のシンボルのみを使用する実行可能ファイルには、適切なサブセットであるかどうか、つまり欠落しているシンボルがないかどうかを検出できるset:versionがあります。

set:versionの実装はAlexey Tourbinによって書かれました。

一方、提供されたすべてのライブラリシンボルと必要なすべての実行可能シンボルのリストを生成するためにnm(1)を使用するのはそれほど難しくありません。

提供/必須シンボルに共通のファイル形式を使用し、「sort -u」を使用して重複をアルファベット順に並べて削除する場合、2つのファイルを単純に比較して未解決のシンボルがないことを確認できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.