특정 라이브러리에 의존하는 RPM 패키지를 나열하는 방법은 무엇입니까?

특정 라이브러리에 의존하는 RPM 패키지를 나열하는 방법은 무엇입니까?

내 Fedora 25 시스템의 어떤 RPM 패키지가 라이브러리에 의존하는지 확인하고 싶습니다 libLLVM-3.8.so. libclang-3.8.so어떻게 해야 합니까?

답변1

이를 이용 dnf repoquery하여 찾아보실 수 있습니다. 예를 들어:

dnf repoquery --whatrequires libLLVM-3.8.so

그러나 x86_64 시스템에서는 원하는 효과를 얻지 못할 수도 있습니다. x86_64 버전의 라이브러리를 지정하십시오.원하는 것) ()(64bit)다음과 같이 추가하십시오.

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)' 

( '이제 괄호로 인해 bash가 혼동되는 것을 방지해야 합니다.)

기본적으로 사용 가능하고 설치된 패키지가 나열됩니다. 현재 설치된 패키지로 제한하려면 --installed다음과 같이 플래그를 추가하세요.

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)'  --installed

내 시스템에서는 다음이 반환됩니다.

llvm-libs-0:3.8.0-1.fc25.x86_64
mesa-dri-drivers-0:13.0.2-2.fc25.x86_64
mesa-libxatracker-0:13.0.2-2.fc25.x86_64

패키지 이름만 원하는 경우 추가 형식 옵션을 --queryformat '%{name}\n'위해 .dnf repoquery --querytags

답변2

$ locate libLLVM-3.8.so
/usr/lib/libLLVM-3.8.so
/usr/lib64/libLLVM-3.8.so
$ rpm -qf /usr/lib64/libLLVM-3.8.so
llvm-libs-3.8.0-1.fc25.x86_64
$ sudo rpm -e --test llvm-libs-3.8.0-1.fc25.x86_64
error: Failed dependencies:
        libLLVM-3.8.so()(64bit) is needed by (installed) clang-libs-3.8.0-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-dri-drivers-13.0.2-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libOpenCL-13.0.2-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libxatracker-13.0.2-2.fc25.x86_64

다른 파일도 비슷합니다. 또는 어떤 문서.

관련 정보