diary/Kojima

・Plamo用依存関係チェックツール

ちとバタバタしているので、詳しく書く余裕が無いのだけれど、Plamo Linux用のライブラリ依存関係チェックツールを紹介。ちょうどこのあたりの話題を「続・玩式草子」の方に書きかけてるんで、そっちも参照していただければ幸い。

/usr/bin/ 等にあるELF形式のバイナリファイルをlddして、それぞれに必要なライブラリをDB(depends.sql3)に登録するためのツール。ファイル形式のチェックに libmagic を使っているので、実行前には "pip install python-magic" が必要。一部、root権限でしか読めないファイルがあるので、実行時にはsudoを使うかrootになる必要あり。

上記コマンドで作成したdepends.sql3から、あるバイナリファイルに必要なライブラリや、あるライブラリを参照しているバイナリファイルをチェックするツール

例えば ffmpeg が提供する libavformat.so.xxx を使っているバイナリをチェックするには、"-r avformat" と指定する。

 $ ./query_depends.py -r avformat
 /usr/lib/libavformat.so.57 used by these binaries
   libavdevice.so.57.10.100(/usr/lib/libavdevice.so.57.10.100)
   libavfilter.so.6.107.100(/usr/lib/libavfilter.so.6.107.100)
   ffprobe3.4(/usr/bin/ffprobe3.4)
   ffplay3.4(/usr/bin/ffplay3.4)
   ffmpeg3.4(/usr/bin/ffmpeg3.4)
   ffserver3.4(/usr/bin/ffserver3.4)
 /usr/lib/libavformat.so.58 used by these binaries
   libavdevice.so.58.8.100(/usr/lib/libavdevice.so.58.8.100)
   libmpv.so.1.107.0(/usr/lib/libmpv.so.1.107.0)
   libavfilter.so.7.57.100(/usr/lib/libavfilter.so.7.57.100)
   ffaudio.so(/usr/lib/audacious/Input/ffaudio.so)
   libavio_plugin.so(/usr/lib/vlc/plugins/access/libavio_plugin.so)
   libavformat_plugin.so(/usr/lib/vlc/plugins/demux/libavformat_plugin.so)
   libgstlibav.so(/usr/lib/gstreamer-1.0/libgstlibav.so)
   ff-save.so(/usr/lib/gegl-0.4/ff-save.so)
...

一応、"-h"オプションは仕込んでいるので詳細はそっちを参照してください。

"ldd"ではなく"readelf -d"を使って必要なライブラリを調べ、elfdepends.sql3 というDBに登録するツール。"ldd"だと芋ヅル式に必要なライブラリが出てくるけど、こっちは実際にバイナリファイルに書き込まれているライブラリをチェックするので、バイナリファイルの更新時はこっちを見る方が確実かも。

elfdepends3.sql3を調べてあるバイナリに必要なライブラリやあるライブラリを参照しているバイナリをチェックするコマンド。オプションはquery_depends.pyと少し違うので、詳細は"-h"でチェックすること。



添付ファイル: filequery_depends.py 4件 [詳細] fileget_depends2.py 15件 [詳細] filequery_depends2.py 4件 [詳細] fileget_depends.py 8件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:43