
Ich schreibe ein Tool zur Bildanalyse und habe vollen Zugriff auf das Dateisystem eines Bildes.
Ich möchte eine Liste aller installierten Pakete mit Name und Versionsinformationen erstellen. Allerdings möchte ich die VM nicht wirklich ausführen, da ich ihr nicht vertraue.
Ich kenne Befehle wie diesen, rpm -qa
bin mir aber nicht sicher, ob ich die Daten nur durch das Lesen von Dateien abrufen kann (was wohl der RPM-Befehl macht).
Jede Hilfe ist herzlich willkommen!
Antwort1
Sie könnten die RPMDB aus Ihrem Dateisystem extrahieren: alle Dateien darunter /var/lib/rpm/
.
Dann könnte man immer noch rpm
die Pakete abfragen, aber ohne die VM auszuführen: Wenn man das einfügtrpmdbin einem anderen gefälschten Dateisystem.
Ich habe dies ausprobiert. Es scheint, als ob rpm
die Datenbank standardmäßig unter durchsucht wird /usr/lib/sysimage/rpm
. Daher habe ich Folgendes getan:
mkdir -p /tmp/fakeroot/usr/lib/sysimage/rpm/
scp other-machine:/var/lib/rpm/* /tmp/fakeroot/usr/lib/sysimage/rpm/
rpm --root /tmp/fakeroot -qa
wie Sie sehen, habe ich die rpm
Datenbank von einem anderen Computer kopiert und kann jetzt ihre Pakete abfragen.