Debian: найдите файлы двоичных и отладки по ID Build-ID

попробуйте

awk -F\| -v select="$var" '$2 == select { print $4;}' config_file

где

  • $ var содержит поле, которое вы хотите выбрать
  • -F \ | скажите awk использовать | как разделитель, | (pipr) необходимо экранировать.
  • -v select = "$ var" передать $ var в переменную awk (выбрать)
  • $ 2 == select выбрать строку, второй аргумент которой - "$ var", или выбрать.
  • {print $ 4;} распечатать четвертое поле.
2
10.10.2018, 17:04
1 ответ

Насколько мне известно, нет инструмента для поиска -идентификаторов сборки (, но см. ниже ).

Вы можете использовать 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вручную. Индекс репозиториев отладки включает идентификаторы сборки -; например

$ 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 <anibal@debian.org>
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

Для прямого поиска идентификаторов сборки -, от 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, но, насколько я могу судить, ни одна из версий, находящихся в настоящее время в архивах, не соответствует вашему идентификатору сборки -.

3
27.01.2020, 22:08

Теги

Похожие вопросы