Debianシステムのコアダンプがあり、ダンプに使用されているライブラリのビルドIDを知っていますが、正しいバージョンがわからないとしましょう。これらのファイルを見つける方法はありますか?
たとえば、このコマンドは、eu-unstrip -n --core my-core-file
次のコアダンプのビルドIDのリストを提供します。
0x7f09b7228000+0x2721081b72306ef00166fe1511d57140b50f5ce341170e@0x7f09b72281d8 /lib/x86_64-linux-gnu/libpcre.so.3 -libpcre.so.3
0x7f09bac07000+0x219208908b5a955d0a73fb8d31e0f927d0cdba810cb300@0x7f09bac071d8 /lib/x86_64-linux-gnu/libz.so.1 -libz.so.1
0x7f09bb06c000+0x20fd8806ea95ca3df11e4a8e85791c1ff89a49fc3fe9c1@0x7f09bb06c1d8 /lib/x86_64-linux-gnu/libbz2.so.1.0 -libbz2.so.1.0
これらのライブラリ名とビルドIDに基づいて、これらのビルドIDがどのパッケージまたはファイルバージョンに対応しているかを知らせてダウンロードできるようにするコマンド、Webサービス、またはその他のエントリはありますか?
ベストアンサー1
私が知る限り、そんなことはありません。ツールビルドIDを検索します(下記参照)。
これを使用して、apt-file
使用しているライブラリを提供するパッケージを検索できます。インストールしてインデックスを更新して実行します。
apt-file search /lib/x86_64-linux-gnu/libpcre.so.3
apt-file search /lib/x86_64-linux-gnu/libz.so.1
apt-file search /lib/x86_64-linux-gnu/libbz2.so.1.0
Packages
ビルドIDを使用するには、ファイルを手動で確認する必要があります。たとえば、デバッグストアのインデックスにはビルドIDが含まれます。
$ apt show libbz2-1.0-dbgsym
Package: libbz2-1.0-dbgsym
Version: 1.0.6-8.1
Auto-Built-Package: debug-symbols
Priority: extra
Section: debug
Source: bzip2
Maintainer: Anibal Monsalve Salazar <[email protected]>
Installed-Size: 68.6 kB
Depends: libbz2-1.0 (= 1.0.6-8.1)
Homepage: http://www.bzip.org/
Build-Ids: 06ea95ca3df11e4a8e85791c1ff89a49fc3fe9c1
Download-Size: 51.5 kB
APT-Sources: http://debug.mirrors.debian.org/debian-debug stretch-debug/main amd64 Packages
Description: Debug symbols for libbz2-1.0
ビルドIDを直接検索するには、grep
以下を渡してください/var/lib/apt/*Packages
。
grep -l 06ea95ca3df11e4a8e85791c1ff89a49fc3fe9c1 /var/lib/apt/lists/*Packages
これを組み合わせて、less
パッケージの名前とバージョンを確認できます。
grep -l 06ea95ca3df11e4a8e85791c1ff89a49fc3fe9c1 /var/lib/apt/lists/*Packages | xargs -r less -p06ea95ca3df11e4a8e85791c1ff89a49fc3fe9c1
これは、デバッグパッケージのインデックスがある場合にのみ機能します。これを行うには、にファイルを追加してください/etc/apt/sources.list.d
。debug.sources
Types: deb
URIs: http://debug.mirrors.debian.org/debian-debug/
Suites: stretch-debug testing-debug unstable-debug experimental-debug
Components: main
これにより、安定、ベータ、不安定、および実験リリースの主要コンポーネントのデバッグインデックスがダウンロードされます。
一部のパッケージ(例libpcre3
:)はパッケージをビルドしないため、-dbgsym
上記の検索にはそのパッケージは含まれていません。そのバージョンがありますがlibpcre3-dbg
、私が知っている限り、現在のアーカイブにあなたのビルドIDと一致するバージョンはありません。