Я пытаюсь определить программное обеспечение, установленное на серверах CentOS, до сих пор я «не подошел» со следующими два основных решениямиОпределения установленных пакетов программного обеспечения на Centos машине
- Разбирает файловую систему для исполняемых файлов и библиотек
- Выполнить что-то вроде
rpm -qa
Первый из них занимает много времени, в то время как второй не относится ко всем моим делам. Например, я хочу «искать» пакеты, даже если сервер не запущен, и я могу получить доступ только к своей файловой системе в качестве удаленного тома, моментального снимка или изображения.
Что я думаю о том, чтобы попытаться разобрать те же базы данных/файлы, которые rpm -qa
считывает данные.
После запуска strace -o /tmp/rpm-strace.out rpm -qa
Я нашел (не будучи уверенным), что /var/lib/rpm/Packages
и /var/lib/rpm/Names
- это возможные места для этой «базы данных», но я не могу разобрать ни один из этих 2 файлов.
Кто-нибудь знает, как разбирать эти файлы? Есть ли альтернатива для достижения того, чего я хочу?
Примечание: Вся идея возможна под Ubuntu, так как задается вопрос this 'Unix & Linux'.
Отказ от ответственности: Этот вопрос может быть более подходящим для сайта serverfault.
Как я уже сказал, я предполагаю, что вышеупомянутые файлы хранят информацию, которую я хочу. Итак, вы правы, это ужасная идея, но я должен попробовать ее и посмотреть, работает ли она. Тем не менее, я думаю, что 'chroot/my/server/filesystem rpm -qa' - это путь. – Athafoud
«rpm -qa --root/my/server/filesystem» работает аналогично. – msuchy