두 가지 다른 버전의 rpm 파일(1.1.rpm, 2.1.rpm)이 있으므로 여기서는 rpm을 쿼리하고 출력을 텍스트 파일(1.1.txt, 2.1.txt)에 저장해야 하며 두 버전을 비교해야 합니다. 버전 txt 파일을 작성하고 테이블 열에 차이점을 표시합니다.
예를 들어:
Pkg Name | 1.1.txt | 2.1.txt
-------------------------------+---------------------------+---------------------------
qq | 3.4.4. | 3.5.5
rr | 1.18.1 | 1.18.1
이 cmd를 사용하여 쿼리하려고 합니다.
rpm -qplv file* > 1.1.txt
어떻게 해야할지 아시나요?
답변1
패키지에서 및 를 얻으려면 name
기본 및 옵션을 사용하여 및 형식 지정자를 지정할 수 있습니다. 필드 너비 수정자를 포함하여(C와 동일한 방식으로) 서식을 제공할 수 있습니다. 또한 rpm 서명 오류를 무시하도록 리디렉션하려고 합니다.version
rpm
rpm -qp
--queryformat
%{NAME}
%{VERSION}
printf
stderr
/dev/null
예를 들어, 현재 디렉토리에 있는 모든 rpm 패키지의 이름과 버전을 나열하려면 다음을 수행하십시오.
예시 속도:
$ l1 *.rpm
athena-jot-9.0-4.1.x86_64.rpm
freetype2-devel-32bit-2.6.3-5.1.x86_64.rpm
ft2demos-2.6.3-5.1.x86_64.rpm
gtkwrite-0.1.2-2.1.x86_64.rpm
libfreetype6-32bit-2.6.3-5.1.x86_64.rpm
이러한 느슨한 rpm에서 명령을 실행하면 다음이 제공됩니다.
$ rpm -qp --queryformat "%-24{NAME}%15{VERSION}\n" *.rpm 2>/dev/null
athena-jot 9.0
freetype2-devel-32bit 2.6.3
ft2demos 2.6.3
gtkwrite 0.1.2
libfreetype6-32bit 2.6.3
1.1.txt
파일 에 쓰려면 다음과 같이 출력을 리디렉션하십시오.
$ rpm -qp --queryformat "%-24{NAME}%15{VERSION}\n" *.rpm 2>/dev/null > ~/tmp/1.1.txt
$ cat ~/tmp/1.1.txt
athena-jot 9.0
freetype2-devel-32bit 2.6.3
ft2demos 2.6.3
gtkwrite 0.1.2
libfreetype6-32bit 2.6.3