Fedora 17에 일부 rpm 패키지를 설치했습니다. 일부 패키지에는 많은 종속성이 있습니다. 일부 패키지를 제거했지만 yum 제거를 사용하여 사용하지 않는 종속성을 제거하는 것을 잊었습니다.
이제 어떻게 해야 하나요?
답변1
yum install
예를 들어 패키지를 설치하면 pdftk
많은 종속성이 발생합니다.
Installed:
pdftk.x86_64 0:1.44-10.fc18
Dependency Installed:
bouncycastle.noarch 0:1.46-6.fc18
itext-core.noarch 0:2.1.7-14.fc18
libgcj.x86_64 0:4.7.2-8.fc18
bouncycastle-mail.noarch 0:1.46-6.fc18
java-1.5.0-gcj.x86_64 0:1.5.0.0-40.fc18
sinjdoc.x86_64 0:0.5-13.fc18
bouncycastle-tsp.noarch 0:1.46-5.fc18
java_cup.noarch 1:0.11a-10.fc18
itext.x86_64 0:2.1.7-14.fc18
javamail.noarch 0:1.4.3-12.fc18
Complete!
yum remove pdftk
모든 종속 항목 대신 패키지만 제거됩니다.
하지만 모든 "거래"(설치, 제거 등)를 볼 수 있습니다.
$ sudo yum history list pdftk
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
88 | install pdftk | 2012-12-14 13:35 | Install | 11
그런 다음 거래를 취소할 수 있습니다.
$ sudo yum history undo 88
Undoing transaction 88, from Fri Dec 14 13:35:34 2012
Dep-Install bouncycastle-1.46-6.fc18.noarch @fedora
Dep-Install bouncycastle-mail-1.46-6.fc18.noarch @fedora
Dep-Install bouncycastle-tsp-1.46-5.fc18.noarch @fedora
Dep-Install itext-2.1.7-14.fc18.x86_64 @fedora
Dep-Install itext-core-2.1.7-14.fc18.noarch @fedora
Dep-Install java-1.5.0-gcj-1.5.0.0-40.fc18.x86_64 @fedora
Dep-Install java_cup-1:0.11a-10.fc18.noarch @fedora
Dep-Install javamail-1.4.3-12.fc18.noarch @fedora
Dep-Install libgcj-4.7.2-8.fc18.x86_64 @fedora
Install pdftk-1.44-10.fc18.x86_64 @fedora
Dep-Install sinjdoc-0.5-13.fc18.x86_64 @fedora
...
Complete!
답변2
Fedora 18부터 간단히 이 명령을 사용할 수 있습니다.
yum autoremove
또는
yum remove --setopt=clean_requirements_on_remove=1
특정 패키지에 자동 제거 명령을 적용할 수도 있습니다.
yum autoremove <package>
이렇게 하면 설치된 패키지에서 불필요한 종속성이 제거됩니다. autoremove
대체로 별칭이지만 remove --setopt=clean_requirements_on_remove=1
어떤 이유로든 아직 문서화되지 않았습니다.
답변3
쉽지 않습니다. "삭제한 콘텐츠에 필요한 파일"과 "실제로 원하는 다른 콘텐츠에 필요하지 않은 파일"을 어떻게 구별합니까?
package-cleanup
패키지 내의 명령을 사용하여 yum-utils
패키지의 종속성 그래프에 "리프 노드"를 나열할 수 있습니다. 다음은 다른 것에 영향을 주지 않고 제거할 수 있는 패키지입니다.
$ package-cleanup --leaves
그러면 다른 종속성이 없는 "라이브러리" 목록이 생성됩니다. 대부분의 경우 이러한 패키지를 안전하게 제거할 수 있습니다. --all
명령줄에 추가하는 경우 :
$ package-cleanup --leaves --all
라이브러리로 간주되지 않는 패키지도 얻을 수 있지만 이 목록은 너무 길어서 유용하지 않을 수 있습니다.
답변4
최신 dnf
Fedora 에서는 dnf repoquery --unneeded
.package-cleanup --leaves