Мне нужно перечислить программы, которые имеют указанную общую библиотеку, связанную с ними в UNIX/Linux (например, ldd, но наоборот)

Команда ldd в unix/linux выводит список всех динамически связанных библиотек программы.

Как я могу определить обратный вопрос:
Что такое список программ, связанных с указанной общей библиотекой?

Мне нужен способ получить список программ, которые используют "libz", например.

есть команда для этого?

1 ответ

Решение

Я очень сомневаюсь, что будет. Для этого потребуется хранить базу данных всех исполняемых файлов и помнить, от чего они зависят, что может быть возможно, если вы устанавливаете программное обеспечение только с определенного канала, но, безусловно, не сможет отслеживать исполняемые файлы, которые вы создаете в противном случае. Не говоря уже о том, что такая база данных в значительной степени бесполезна и потому не привлекательна.

Однако если вам нужно найти такие исполняемые файлы (например, чтобы узнать, безопасно ли удалять общую библиотеку), вы можете легко найти большинство из них. Ключ в том, что большинство исполняемых файлов у вас внутри /usr/bin или же /usr/local/bin или аналогичные места. Так что все, что вам нужно, это бежать ldd на всех файлах внутри этих каталогов и grep для библиотеки, которую вы ищете.

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