[centos] 찾고있는 파일을 제공하는 rpm 패키지를 어떻게 찾습니까?

예를 들어, 패키지 mod_files.sh와 함께 제공 되는 파일을 찾고 php-devel있습니다. 패키지 와 함께 파일을 yum설치 한다고 생각 했지만 파일이 파일 시스템에 설치되지 않은 것으로 보입니다.mod_files.shphp-devel x86_64 5.1.6-23.2.el5_3

어떤 파일이 특정 파일을 설치하는지 어떻게 알 수 있습니까? 필자가 찾고있는 파일을 포함 할 수있는 패키지를 이미 로컬로 다운로드하지 않은 곳을 찾고 있습니다.

CentOS 5를 사용하고 있습니다.



답변

이것은 오래된 질문이지만 현재 답변이 잘못되었습니다 🙂

원하는 파일의 절대 경로 (와일드 카드로 표시 될 수 있음)와 함께 yum whatprovides를 사용하십시오 . 예를 들면 다음과 같습니다.

yum whatprovides '*bin/grep'

보고

grep-2.5.1-55.el5.x86_64 : The GNU versions of grep pattern matching utilities.
Repo        : base
Matched from:
Filename    : /bin/grep

패키지 repoquery에서 제공되는 도구 의 출력 및 속도를 선호 할 수 있습니다 yum-utils.

sudo yum install yum-utils
repoquery --whatprovides '*bin/grep'
grep-0:2.5.1-55.el5.x86_64
grep-0:2.5.1-55.el5.x86_64

repoquery 패키지 내용, 종속성, 역 의존성 등의 다른 쿼리를 수행 할 수 있습니다.


답변

패키지가 이미 설치된 파일을 소유 (또는 제공)하는 방법을 알려면 :

rpm -qf myfilename


답변

가장 인기있는 답변은 불완전합니다.

이 검색은 일반적으로 설치된 패키지의 파일에 대해서만 수행되므로 모든 외부 저장소를 비활성화하여 yum 이 제공하는 내용을 매우 빠르게 만듭니다 (암시 적 “설치된”저장소를 비활성화 할 수 없음).

yum --disablerepo=* whatprovides <file>


답변

http://www.rpmfind.net으로 이동 하여 파일을 검색하십시오.

많은 다른 배포판과 버전에 대한 결과를 얻을 수 있지만 Fedora 및 / 또는 CentOS도 팝업되어 yum과 함께 설치할 패키지 이름을 알 수 있습니다


답변

인터넷 (리포지토리)에 연결되어있을 때 패키지를 찾는 것은 쉽지만 Redhat 또는 Centos DVD 내부의 RPM 패키지에만 액세스 할 수있는 경우 (이는 서버를 복구하고 응용 프로그램이 필요할 때 자주 발생합니다) 아래 명령을 사용하여 인터넷 및 저장소와 완전히 독립적입니다. DVD에 많은 제거 된 패키지가있을 수 있습니다. ~ / cent_os_dvd에 Package 폴더를 마운트하고 “시니 지”를 제공하는 패키지를 찾고 있다고 가정하면 다음을 실행할 수 있습니다.

for file in `find ~/cent_os_dvd/ -iname '*.rpm'`;  do rpm -qlp $file |grep '.*bin/semanage';  if [ $? -eq 0 ]; then echo "is in";echo $file  ; fi;  done


답변

rpm 유틸리티 만 사용하면 rpm이있는 모든 OS에서 작동합니다.

rpm -q --whatprovides [file name]

참조 https://www.thegeekdiary.com/how-to-find-which-rpm-package-provides-a-specific-file-or-library-in-rhel-centos/


답변

여기에서도 패키지와 함께이 작업을 수행 할 수 있습니다. 내 경우에는lsb_release

운영: yum whatprovides lsb_release

응답:

redhat-lsb-core-4.1-24.el7.i686 : LSB Core module support
Repo        : rhel-7-server-rpms
Matched from:
Filename    : /usr/bin/lsb_release

redhat-lsb-core-4.1-24.el7.x86_64 : LSB Core module support
Repo        : rhel-7-server-rpms
Matched from:
Filename    : /usr/bin/lsb_release

redhat-lsb-core-4.1-27.el7.i686 : LSB Core module support
Repo        : rhel-7-server-rpms
Matched from:
Filename    : /usr/bin/lsb_release

redhat-lsb-core-4.1-27.el7.x86_64 : LSB Core module support
Repo        : rhel-7-server-rpms
Matched from:
Filename    : /usr/bin/lsb_release`

설치를 위해 실행 : yum install redhat-lsb-core

패키지 이름은 번호와 시스템 유형이 없어야하므로 yum packager가 가장 적합한 것을 선택할 수 있습니다.