У меня есть некий рантайм, который использует компоненты, не являющиеся обычными .so-библиотеками. Для каждой компоненты есть отдельный .ebuild, который её устанавливает. Есть финальный .ebuild, который через portage-зависимости подключает нужные компоненты (т.е. их .ebuild-файлы в переменной DEPEND).
Вопрос - как изнутри этого финального .ebuild напечатать список всех используемых компонент рантайма (точнее как распечатать список .ebuild файлов тех компонентов, которые являются зависимостями финальной выполняемой программы)?
Это нужно мне для того, чтобы создать симлинки в директории программы до артефактов, устанавливаемых для каждой компоненты, потому что загрузчик рантайма без этих симлинков не может их найти. (у загрузчика ld нет таких проблем, потому что он видит версии в ELF и умеет по версиям грузить нужный .so-файл с указанной версией)
И просмотреть нужно все зависимости рекурсивно, потому что компоненты могут зависеть от других компонентов. Нельзя просто взять и разобрать содержимое DEPEND только у устанавливаемого пакета с выполняемой программой.
Нормально ли использовать equery изнутри ebuild (в src_install)? У меня есть ощущение, что если пакет ещё не установлен, то и equery не сработает.