
특정 파일을 제공할 수 있는 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.jarRPM에 대한 모든 정보를 보고 싶지 않다면 옵션에서 "-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" 문자열에서 분명하게 나타남)로 인해 발생합니다.