rpm의 기능은 무엇이며 rpm 없이 해당 텍스트를 얻는 방법

rpm의 기능은 무엇이며 rpm 없이 해당 텍스트를 얻는 방법

을 실행하면 less package.rpmless 패키지에 대한 다양한 메타 정보가 표시됩니다. 무엇을 해야 할지 잘 모르겠습니다. 메타 정보를 추출하는 코드가 내장되어 있습니까? 아니면 첫 번째 부분이 텍스트 파일처럼 보이도록 rpm이 구성되어 있습니까?

head여기서는 별로 도움이 되지 않기 때문에 전자라고 생각합니다 . 하지만 도착하다진짜질문: 이 메타데이터가 나에게 덜 표시되도록 하려면 grep어떻게 해야 합니까?

답변1

less매뉴얼 페이지를 찾아보면 less입력 전처리기 기능이 있다는 것을 알 수 있습니다.

echo $LESSOPEN이 전처리기의 위치를 ​​확인하고 //를 사용하여 less해당 내용을 확인하세요.vimcat

내 컴퓨터에서 이 전처리기에는 /usr/bin/lesspipe.sh다음과 같은 rpm 콘텐츠가 포함되어 있습니다.

*.rpm) rpm -qpivl --changelog -- "$1"; handle_exit_status $?

실제로 파일을 열고 출력의 페이지 매김을 표시할 less필요가 없습니다 .rpm

분명히 이 정보를 grep하려면 rpm의 출력을 직접 grep하십시오.

grep "foo" < <(rpm -qpivl --changelog -- bar.rpm)

아니면 일반적으로 (OrangeDog에게 감사드립니다)

grep "foo" < <(lesspipe.sh bar.rpm)

노트: $LESSOPEN단순히 위치만 저장하는 것이 아니라 lesspipe.sha로 시작해서 |a로 끝나기 %s때문에 직접 호출하면 오류가 발생합니다.

답변2

이 메타데이터를 나에게 표시하는 대신 탐색하고 싶다면 어떻게 해야 합니까?

예를 들어 "버전"을 검색하려는 경우 매우 간단합니다.

less your.rpm | grep "Version"

less는 명령을 사용하므로 less를 사용하지 않고 다음 과 같은 명령을 rpm사용하는 것이 좋습니다 .rpm

rpm -qip /path/to/uninstalled/rpm
rpm -qi installed.rpm

관련 정보