Это не совсем то. Там пишут необходимыйе пакеты. Мне же нужен непосредственный список файлов, которые необходимы программе. Предполагается что она собрана и все файлы уже есть в системе.
ldd это хорошо, но что если в силу скажем лицензионной специфики binary не слинкован с другой программой, а просто её вызывает через пайп? А уж про всякие /path/to/bla-bla-bla.{py|pl|sh} даже думать не хочется.
Вроде никак, особенно если программа сама грузит все плугины из определенного каталога, выполняя из грузит другие файлы...
>Мне же нужен непосредственный список файлов, которые необходимы программе.
А если программа с локализацией, то есть glibc в зависимости от переменных среды грузит разные файлы локализации, то эти файлы как, относятся к необходимым или нет?
Стоп... configure-скрипт проверяет наличие необходимых зависимостей. Он это делает без помощи пакетного менеджера, значит он не знает как называются пакеты установленные на машину. Как он это делает?
Сомнительно.
~# pkg-config --list-all | grep qt
avahi-qt4 avahi-qt4 - Avahi Multicast DNS Responder (QT4 Support)
poppler-qt4 poppler-qt4 - Qt4 bindings for poppler
poppler-qt poppler-qt - Qt bindings for poppler
Он ничего не знает о qt4. Однако же и cmake и ./configure в курсе что они (qt4) есть.
Так-с, насколько мне известо, да и даже если заглянуть в нужный configure это шеловский скрипт. Чаще всего используется pkg-config, но иногда он может и не требоваться, тогда вопрос о том если нужное приложение/библиотека ищется другим путем, например, при явном указании пути (--with-openssl=/usr/local). Также используются стандартные имена файлов и их расположение например /etc/fstab, а также стандартные ENV-переменные, например, LC_LOCALE. Вся инфа заносится как в config.log, config.cache, так и в config.status, в зависимости от предпочтения мэйнтэйнера. Собственно вот так вот.
По-всякому. В поисках устоявшихся методов смотри m4-файлы aclocal у себя в системе и поставляемые с пакетом, иногда проверки просто тупо включаются в configure.in. Если можно, то действительно используется pkgconfig, просто не все пакеты его поддерживают.