파일을 제공하는 rpm

파일을 제공하는 rpm

특정 파일을 제공할 수 있는 rpm(이미 설치된 파일을 제공하는 rpm 또는 설치되지 않은 파일을 제공할 수 있는 rpm)을 나열하는 명령은 무엇입니까?

답변1

이미 설치된 파일/패키지의 경우:

[jb@smokey ~]$ rpm -qf /etc/sudoers
sudo-1.6.9p13-8.fc9.x86_64

아직 설치되지 않은 파일 및 패키지의 경우:

[jb@smokey ~]$ yum whatprovides "/etc/sudoers"
sudo-1.6.9p13-8.fc9.x86_64 : 지정된 사용자에게 제한된 루트 액세스를 허용합니다.
저장소 : 업데이트-newkey
일치 항목:
파일 이름 : /etc/sudoers  

sudo-1.6.9p13-4.fc9.x86_64 : 지정된 사용자에게 제한된 루트 액세스를 허용합니다.
저장소 : 페도라
일치 항목:
파일 이름 : /etc/sudoers

sudo-1.6.9p13-8.fc9.x86_64 : 지정된 사용자에게 제한된 루트 액세스를 허용합니다.
레포 : 설치됨
일치 항목:
기타: 제공-일치: /etc/sudoers

"yum whatprovides"는 패턴 일치이므로 찾고 있는 파일이 디렉터리 구조에서 어디에 있는지 확실하지 않은 경우에는 해당 파일을 따옴표와 별표로 둘러싸면 됩니다.

냠 "*foo*"는 무엇을 제공하나요?

마찬가지로 찾고 있는 것이 바이너리라고 확신하는 경우 다음을 수행할 수 있습니다.

yum은 "*bin/foo"를 제공합니다

답변2

아직 설치되지 않은 파일에 대해서는 모르지만 이미 설치된 파일의 경우 rpm -qif를 사용할 수 있습니다.

rpm -qif /bin/ls
이름: coreutils 재배치: (재배치 불가능)
버전: 5.97 공급업체: Red Hat, Inc.
출시 : 23.el5 빌드 날짜: 2009년 7월 13일 월요일 오전 4시 21분 27초 MDT
설치 날짜: 2009년 9월 11일 금요일 오전 4:46:01 MDT 빌드 호스트: hs20-bc1-7.build.redhat.com
그룹: 시스템 환경/기본 소스 RPM: coreutils-5.97-23.el5.src.rpm
크기: 9053874 라이센스: GPLv2+
서명: DSA/SHA1, 2009년 7월 28일 화요일 오전 03:42:40 MDT, 키 ID 5326810137017186
패키저 : Red Hat, Inc.
URL:
요약 : GNU 핵심 유틸리티: 쉘 스크립트에서 일반적으로 사용되는 도구 세트
설명 :
이는 GNU 핵심 유틸리티입니다. 이 패키지는 다음의 조합입니다.
이전 GNU fileutils, sh-utils 및 textutils 패키지.
RPM을 다운로드한 경우 설치할 항목을 쿼리하여 확인할 수 있습니다.
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm
경고: ./Server/jzlib-1.0.7-4jpp.1.i386.rpm: 헤더 V3 DSA 서명: NOKEY, 키 ID 37017186
이름: jzlib 재배치: (재배치 불가능)
버전: 1.0.7 공급업체: Red Hat, Inc.
릴리스: 4jpp.1 빌드 날짜: 2006년 8월 8일 화요일 오후 12:10:03 MDT
설치 날짜: (설치되지 않음) 빌드 호스트: hs20-bc1-6.build.redhat.com
그룹 : 개발/라이브러리/Java 소스 RPM: jzlib-1.0.7-4jpp.1.src.rpm
크기 : 280436 라이센스 : BSD 스타일
서명: DSA/SHA1, 2007년 1월 18일 목요일 오전 8시 49분 50초 MST, 키 ID 5326810137017186
패키저 : Red Hat, Inc.
URL:
요약 : 순수 Java에서 JZlib의 zlib 재구현
설명 :
zlib는 법적으로 제약이 없는 무료 범용 소프트웨어로 설계되었습니다.
-- 즉, 어떠한 특허도 적용되지 않습니다. -- 무손실 데이터 압축
거의 모든 컴퓨터 하드웨어 및 운영 체제에서 사용할 수 있는 라이브러리입니다.
zlib는 Jean-loup Gailly(압축)와 Mark Adler가 작성했습니다.
(감압).
/usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db
/usr/lib/gcj/jzlib/jzlib-1.0.7.jar.so
/usr/share/doc/jzlib-1.0.7
/usr/share/doc/jzlib-1.0.7/LICENSE.txt
/usr/share/java/jzlib-1.0.7.jar
/usr/share/java/jzlib.jar
RPM에 대한 모든 정보를 보고 싶지 않다면 옵션에서 "-i"를 생략할 수 있습니다.

답변3

yum 기반 저장소에서는 다음과 같은 것을 시도해 볼 수 있습니다. yum provides */filename

답변4

yum을 사용하고 싶지 않거나 사용할 수 없는 경우(예: 오프라인 시스템에서) 다음을 수행하여 설치되지 않은 RPM 내부를 검색할 수 있습니다.

# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*

이 작업에는 시간이 좀 걸릴 수 있으므로 예를 들어 설치 DVD와 같은 대규모 저장소에서 *.rpm을 검색할 때는 인내심을 가지십시오. 그러나 "-qpl"과 달리 "-qp --filesbypkg"는 파일과 해당 파일이 속한 RPM을 모두 나열합니다. 예:

# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4

# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs          /usr/lib/libpq.so.4
postgresql-libs          /usr/lib64/libpq.so.4

이 경우 명백한 중복은 i386 및 x86_64 패키지("lib64" 문자열에서 분명하게 나타남)로 인해 발생합니다.

관련 정보