명령어/Linux
[RHEL] dnf leaves 아무도 안 쓰는 최상위 패키지 찾기
jykim23
2026. 8. 4. 22:56
반응형
부제: 다른 패키지가 의존하지 않는 "잎사귀" 패키지만 추려 정리 후보 뽑기
dnf leaves # 무엇도 의존하지 않는 최상위 패키지 목록
dnf leaves | wc -l # 잎사귀 패키지 개수
dnf repoquery --unneeded # (비교) 자동설치 후 고아가 된 패키지
$ dnf leaves
- NetworkManager-tui-1:1.54.3-2.el9.x86_64
- at-3.1.23-13.el9_7.x86_64
- bash-completion-1:2.11-5.el9.noarch
- bind-utils-32:9.16.23-40.el9_8.1.x86_64
...
(총 252개)dnf leaves는 다른 어떤 패키지도 의존하지 않는 "잎(leaf)" 패키지를 나열한다. 별도 플러그인(python3-dnf-plugin-leaves)이 필요하다. 이 목록이 곧 사용자가 명시적으로 설치했거나, 지워도 다른 것을 깨지 않는 후보다. 시스템에서 무엇을 실제로 쓰는지 파악하거나 군더더기를 걷어낼 때 출발점이 된다. 데비안 계열의 deborphan이나 apt-mark showmanual과 결이 비슷하다.
의존성 그래프의 위상만 계산하는 조회 명령이라 시스템을 바꾸지 않는다. 여기 뜬 걸 지운다고 다 안전한 건 아니니, mark나 repoquery로 설치 이유를 함께 확인하는 게 좋다.
이렇게도 쓴다
잎사귀 패키지가 몇 개인지 규모부터 본다(파이프 조합).
dnf leaves | wc -l
이름으로 특정 패키지가 잎사귀인지 확인한다.
dnf leaves | grep -i httpd
repoquery의 사용자 설치 표시와 비교해 정리 후보를 좁힌다(조합).
comm -12 <(dnf leaves | sed 's/^- //;s/-[0-9].*//' | sort) \
<(dnf repoquery --userinstalled --qf '%{name}' | sort)
잎사귀 중 특정 패키지의 설치 이유(user/dependency)를 확인한다.
dnf repoquery --qf '%{name} %{reason}' --installed at
고아 패키지(unneeded)와 함께 보며 청소 계획을 세운다.
dnf leaves; echo '---'; dnf repoquery --unneeded반응형