사용을 고려하고 있어요CentOS 7은 OpenSSL 대신 LibreSSL을 사용합니다.. 이 시스템은 매우 제한된 서비스를 실행하고 있으므로 OpenSSL을 완전히 제거할 수 있는지 궁금합니다.
#> rpm -qa | grep ssl
openssl-libs-1.0.1e-42.el7.9.x86_64
openssl-1.0.1e-42.el7.9.x86_64
알았어, 그럼 한번 해봐
#> rpm -q --whatrequires openssl-libs-1.0.1e-42.el7.9.x86_64
no package requires openssl-libs-1.0.1e-42.el7.9.x86_64
#> rpm -q --whatrequires openssl-1.0.1e-42.el7.9.x86_64
no package requires openssl-1.0.1e-42.el7.9.x86_64
정말?
#> sudo yum remove openssl-libs-1.0.1e-42.el7.9.x86_64
이것은 다음과 같은 많은 줄을 제공합니다.
--> Processing Dependency: perl(IPC::Cmd) >= 0.42 for package: perl-File-Fetch-0.42-2.el7.noarch
--> Running transaction check
---> Package perl-File-Fetch.noarch 0:0.42-2.el7 will be erased
역겹게 기다려 그럼
Error: Trying to remove "systemd", which is protected
Error: Trying to remove "yum", which is protected
OpenSSL이 불만 없이 제거될 것이라고는 예상하지 못했지만 rpm -q --whatrequires
이러한 종속성이 보고되지 않는 이유는 무엇입니까?
특정 패키지를 직접 또는 간접적으로 필요로 하는 모든 패키지를 나열하는 방법은 무엇입니까?
내 말은 : 만약 패키지라면
답변1
이미 언급했듯이 다른 패키지에는 패키지의 "제공된" 목록에 있는 파일이나 기타 항목이 필요할 수 있습니다.
rpm -q --list openssl openssl-libs
rpm -q --provides openssl openssl-libs
있는지 확인해보세요일부"필요한 것"(전부는 아님):
rpm -e --test openssl openssl-libs
목록모두IMO 이것은 기본적으로 작동하지 않지만 rpm
다음과 같은 yum
경우에 대비해(테스트되지 않음):
yes "N" | yum remove openssl openssl-libs
또는
yum deplist openssl openssl-libs
또는
repoquery --alldeps --whatrequires openssl openssl-libs
답변2
이는 단순히 패키지 설치를 명시적으로 요구하는 사람은 없지만 일부 패키지는 해당 패키지에 의해 설치된 파일에 따라 달라질 수 있음을 의미합니다. 예를 들어 내 컴퓨터에서는 아무도 이 패키지에 의존하지 않지만 일부는 패키지에서 제공하는 라이브러리에 의존합니다.
$ rpm -q libopenssl1_0_0-32bit
libopenssl1_0_0-32bit-1.0.1i-18.1.x86_64 # whence this package is installed
$ rpm -q --whatrequires libopenssl1_0_0-32bit
no package requires libopenssl1_0_0-32bit
$ rpm -ql libopenssl1_0_0-32bit
/lib/engines
/lib/engines/libcapi.so
/lib/engines/libgmp.so
/lib/engines/libgost.so
/lib/engines/libpadlock.so
/lib/libcrypto.so.1.0.0
/lib/libssl.so.1.0.0
$ rpm -q --whatrequires libssl.so.1.0.0
libldap-2_4-2-32bit-2.4.41-14.1.x86_64
cups-libs-32bit-1.7.5-7.1.x86_64
편집하다편집된 질문으로 인해:
rpm -e --test
이를 사용하여 이러한 RPM을 확인할 수 있습니다. 일부 bash 처리를 통해 깨끗한 목록을 얻을 수 있습니다.
$ rpm -e --test libopenssl1_0_0-32bit 2>&1 | grep needed | awk '{print $6}' | sort | uniq
cups-libs-32bit-1.7.5-7.1.x86_64
libldap-2_4-2-32bit-2.4.41-14.1.x86_64