Каков подробный процесс разрешения `${shlibs:Depends}` при создании пакета Debian?

Моя недавняя работа связана с множеством пакетов Debian, и я использую Руководство по обслуживанию нового Debian в качестве основного руководства.

То, что я не полностью понял, как ${shlibs:Depends} разрешается в конкретные пакеты и версии. Под "как" я подразумеваю подробные шаги из переменной ${shlibs:Depends} к окончательному списку пакетов в Depends поле.

Глава 4 говорит:

dh_shlibdeps (1) вычисляет зависимости разделяемой библиотеки для двоичных пакетов. Он генерирует список исполняемых файлов ELF и общих библиотек, которые он нашел для каждого двоичного пакета. Этот список используется для замены ${shlibs:Depends}.

Я думаю, что меня действительно интересуют подробные шаги "создания списка исполняемых файлов ELF и общих библиотек, которые он нашел для каждого двоичного пакета", например, какие источники информации используются.

Я также посмотрел на раздел "8.6.4. Система shlibs" в Руководстве по политике Debian, он дает некоторые источники информации, но все еще не говорит о подробных шагах.

Я могу конечно копаться в dh_shlibdeps скрипт, чтобы выяснить, как это делается, но я не хочу этого делать, потому что я еще не изучил Perl, поэтому я хотел бы посмотреть, есть ли какая-либо другая ссылка, о которой я не знаю, которая уже охватывала это. Если такой ссылки нет, я обязательно прочитаю код.

Спасибо!

1 ответ

Эта тема также нова для меня, но здесь то, что можно собрать (может быть не точно отсортировано) и пропустить некоторые файлы глобальных настроек.

ldd
dpkg -S
deb-shlibs

objdump
deb-symbols
dpkg-gensymbols

debian/shlibs.local
dpkg-shlibdeps
debian/substvars .. shlibs:dependency-field

Это довольно сложно с разрешением символов, некоторые из инструментов просто запускаются на зависимом пакете lib, а не на зависимом пакете, просто подготавливают информацию lib, включаемую в пакет Debian lib для компоновщика пакетов Debian. В любом случае вы проверяете:

Другие вопросы по тегам