Мне нужно перечислить программы, которые имеют указанную общую библиотеку, связанную с ними в UNIX/Linux (например, ldd, но наоборот)
Команда ldd в unix/linux выводит список всех динамически связанных библиотек программы.
Как я могу определить обратный вопрос:
Что такое список программ, связанных с указанной общей библиотекой?
Мне нужен способ получить список программ, которые используют "libz", например.
есть команда для этого?
1 ответ
Я очень сомневаюсь, что будет. Для этого потребуется хранить базу данных всех исполняемых файлов и помнить, от чего они зависят, что может быть возможно, если вы устанавливаете программное обеспечение только с определенного канала, но, безусловно, не сможет отслеживать исполняемые файлы, которые вы создаете в противном случае. Не говоря уже о том, что такая база данных в значительной степени бесполезна и потому не привлекательна.
Однако если вам нужно найти такие исполняемые файлы (например, чтобы узнать, безопасно ли удалять общую библиотеку), вы можете легко найти большинство из них. Ключ в том, что большинство исполняемых файлов у вас внутри /usr/bin
или же /usr/local/bin
или аналогичные места. Так что все, что вам нужно, это бежать ldd
на всех файлах внутри этих каталогов и grep
для библиотеки, которую вы ищете.