RHEL/CentOS - 특정 패키지에 의존하는 모든 rpm 패키지를 찾는 방법은 무엇입니까?

RHEL/CentOS - 특정 패키지에 의존하는 모든 rpm 패키지를 찾는 방법은 무엇입니까?

Linux 배포: Red Hat Enterprise Linux Server 버전 6.10(San Diego)

컨텍스트:
서버에서 이전 버전의 Java를 모두 제거해야 합니다.
예를 들어 Java 경로 목록이 있습니다.

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre/bin/java

다음을 통해 파일을 소유한 패키지를 찾을 수 있습니다.

rpm -qf /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre/bin/java
java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64

java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64이제 패키지를 제거해도 안전한지 확인하기 위해 모든 종속 패키지를 어떻게 찾나요 ?

다음 명령은 이 openjdk 패키지에 의존하는 다른 패키지가 없음을 나타냅니다(참조:질문-166343):

rpm -q --whatrequires  java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64
no package requires java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64

하지만, mysql-connector-java패키지에 따라 다릅니다.
이유: --whatrequiresrpm 옵션에 대한 인수는 패키지 이름이 아니라 패키지에서 제공하는 CAPABILITY이며 CAPABILITY로 검색하는 것은 간단하지 않습니다.

다음 명령도 결과를 반환하지 않았습니다.

repoquery --requires --resolve --recursive java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64

그렇다면 특정 패키지에 의존하는 모든 rpm 패키지를 쉽게 식별할 수 있는 방법이 있습니까?
패키지란 java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64(가 아님 java-1.8.0-openjdk-headless) 을 의미합니다.

답변1

이 시도,

rpm -e이 패키지는 일반적으로 이 패키지에 의존하는 다른 패키지가 있는 경우 제거되지 않습니다( --nodeps물론 이를 우회하는 데 사용할 수 있음). @JeffSchaller가 언급했듯이 rpm -e와 함께 사용하여 --test어떤 것이 있는지 확인할 수도 있습니다.error: Failed dependencies:

--test Don’t really uninstall anything, just go through the motions.  Useful in conjunction with the -vv option for debugging.

rpm -e -vv <package_name> - 조사하다error: Failed dependencies:

또는

rpm -e -vv --test <package_name> - 조사하다error: Failed dependencies:

더 많은 참고자료man rpm

관련 정보