
저는 이미지 분석 도구를 작성 중이며 이미지 파일 시스템에 대한 전체 액세스 권한을 갖고 있습니다.
이름과 버전 정보가 포함된 설치된 모든 패키지 목록을 생성하고 싶습니다. 그러나 VM을 신뢰하지 않기 때문에 실제로 VM을 실행하고 싶지 않습니다.
나는 다음과 같은 명령을 알고 있지만 rpm -qa
파일을 읽는 것만으로 데이터를 얻는 방법(rpm 명령이 수행하는 작업임에 틀림 없음)을 확신하지 못합니다.
어떤 도움이라도 환영합니다!
답변1
파일 시스템에서 rpmdb를 추출할 수 있습니다. /var/lib/rpm/
.
rpm
그런 다음 vm을 실행하지 않고도 패키지를 쿼리하는 데 사용할 수 있습니다 .rpmdb다른 가짜 파일 시스템 내부.
나는 이것을 시도했는데 rpm
기본적으로 데이터베이스를 아래에서 검색하는 것처럼 보이 /usr/lib/sysimage/rpm
므로 다음을 수행했습니다.
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
보시다시피 rpm
다른 컴퓨터에서 데이터베이스를 복사했으며 이제 해당 패키지를 쿼리할 수 있습니다.