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

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

내 Fedora 25 시스템의 어떤 RPM 패키지가 라이브러리 libLLVM-3.8.solibclang-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

다른 파일도 비슷합니다. 아니면 어떤 파일이라도요.

관련 정보