웹사이트 검색

27 Linux에서 RPM 패키지 관리를 위한 'DNF'(Fork of Yum) 명령


DNF(일명 Dandified YUM)는 RPM 기반 배포를 위한 차세대 패키지 관리자입니다. Fedora 18에서 처음 도입되었으며 최근 Fedora 22 릴리스에서는 YUM 유틸리티를 대체했습니다.

DNFYUM, 즉 성능, 메모리 사용량, 종속성 해결, 속도 및 기타 여러 요소의 병목 현상을 개선하는 것을 목표로 합니다. DNF는 RPM, libsolv 및 hawkey 라이브러리를 사용하여 패키지 관리를 수행합니다. CentOS 및 RHEL 7에는 기본적으로 설치되어 있지는 않지만 yum, dnf를 사용하여 yum과 함께 사용할 수 있습니다.

여기에서 DNF에 대한 자세한 내용을 읽어보실 수 있습니다.

  1. Yum을 DNF로 대체한 이유

DNF의 최신 안정 버전은 2015년 5월 11일에 출시된 1.0(게시물 작성 당시)입니다. 이 버전(그리고 모든 이전 버전의 DNF)은 대부분 Python으로 작성되었으며 GPL v2 라이선스에 따라 출시됩니다.

DNF 설치

RHEL/CentOS 7의 기본 저장소에서는 DNF를 사용할 수 없습니다. 그러나 Fedora 22에는 DNF가 공식적으로 구현되어 있습니다.

RHEL/CentOS 시스템에 DNF를 설치하려면 먼저 epel-release 저장소를 설치하고 활성화해야 합니다.

yum install epel-release
OR
yum install epel-release -y

yum과 함께 '-y'를 사용하는 것은 윤리적이지 않지만 시스템에 무엇이 설치되어 있는지 확인하는 것이 좋습니다. 그러나 이것이 중요하지 않다면 yum과 함께 '-y'를 사용하여 사용자 개입 없이 모든 것을 자동으로 설치할 수 있습니다.

다음으로 epel-release 저장소에서 yum 명령을 사용하여 DNF 패키지를 설치합니다.

yum install dnf

dnf가 성공적으로 설치되면 이제 RPM 기반 배포에서 패키지를 관리하는 데 도움이 되는 dnf 명령의 실제 사용법을 27 보여줄 차례입니다. 쉽고 효과적으로.

1. DNF 버전 확인

시스템에 설치된 DNF 버전을 확인하세요.

dnf --version

2. 활성화된 DNF 저장소 나열

dnf 명령과 함께 'repolist' 옵션을 사용하면 시스템에서 활성화된 모든 저장소가 표시됩니다.

dnf repolist

3. 활성화 및 비활성화된 DNF 저장소를 모두 나열합니다.

'모두 다시 게시' 옵션은 시스템에서 활성화/비활성화된 모든 저장소를 인쇄합니다.

dnf repolist all

4. DNF를 사용하여 사용 가능하고 설치된 패키지를 모두 나열합니다.

"dnf list" 명령은 Linux 시스템에 설치된 모든 저장소와 설치된 패키지에서 사용 가능한 모든 패키지를 나열합니다.

dnf list

5. DNF를 사용하여 설치된 모든 패키지 나열

"dnf list" 명령은 모든 저장소에서 사용 가능/설치된 패키지를 모두 표시합니다. 그러나 아래와 같이 "설치된 패키지 목록" 옵션을 사용하여 설치된 패키지만 나열할 수 있는 옵션이 있습니다.

dnf list installed

6. DNF를 사용하여 사용 가능한 모든 패키지 나열

마찬가지로, "사용 가능한 목록" 옵션은 활성화된 모든 저장소에서 설치할 수 있는 모든 패키지를 나열합니다.

dnf list available

7. DNF를 사용하여 패키지 검색

설치하려는 패키지에 대해 전혀 모르는 경우 dnf 명령과 함께 '검색' 옵션을 사용하여 단어나 문자열과 일치하는 패키지를 검색할 수 있습니다(예: nano ).

dnf search nano

8. 파일/하위 패키지를 제공하는 항목을 확인하세요.

dnf 옵션 "provides"는 특정 파일/하위 패키지를 제공하는 패키지 이름을 찾습니다. 예를 들어, 시스템에서 '/bin/bash'를 제공하는 것을 찾으려면?

dnf provides /bin/bash

9. DNF를 사용하여 패키지 세부 정보 가져오기

시스템에 패키지를 설치하기 전에 패키지 정보를 알고 싶다고 가정하면, 아래와 같이 "info" 스위치를 사용하여 패키지(예: nano)에 대한 자세한 정보를 얻을 수 있습니다.

dnf info nano

10. DNF로 패키지 설치

nano라는 패키지를 설치하려면 아래 명령을 실행하면 nano 패키지에 필요한 모든 종속성을 자동으로 해결하고 설치합니다.

dnf install nano

11. DNF를 사용하여 패키지 업데이트

특정 패키지(예: systemd)만 업데이트하고 시스템의 모든 항목은 그대로 둘 수 있습니다.

dnf update systemd

12. DNF를 사용하여 시스템 업데이트 확인

다음과 같이 간단하게 시스템에 설치된 모든 시스템 패키지의 업데이트를 확인하세요.

dnf check-update

13. DNF를 사용하여 모든 시스템 패키지 업데이트

다음 명령을 사용하면 설치된 모든 패키지를 포함하여 전체 시스템을 업데이트할 수 있습니다.

dnf update
OR
dnf upgrade

14. DNF를 사용하여 패키지 제거/삭제

원치 않는 패키지(예: nano)를 제거하거나 지우려면 dnf 명령과 함께 "remove" 또는 "erase" 스위치를 사용하여 제거할 수 있습니다. .

dnf remove nano
OR
dnf erase nano

15. DNF를 사용하여 고아 패키지 제거

종속성을 충족하기 위해 설치된 패키지는 다른 응용 프로그램에서 사용되지 않으면 쓸모가 없을 수 있습니다. 해당 고아 패키지를 제거하려면 아래 명령을 실행하십시오.

dnf autoremove

16. DNF를 사용하여 캐시된 패키지 제거

dnf를 실행하는 동안 오래된 헤더와 완료되지 않은 트랜잭션이 발생하여 오류가 발생하는 경우가 많습니다. 간단히 실행하면 원격 패키지 정보가 포함된 모든 캐시된 패키지와 헤더를 정리할 수 있습니다.

dnf clean all

17. 특정 DNF 명령에 대한 도움말 보기

아래 명령을 실행하면 특정 dnf 명령(예: clean)에 대한 도움을 받을 수 있습니다.

dnf help clean

18. 모든 DNF 명령 및 옵션 나열

사용 가능한 모든 dnf 명령 및 옵션에 대한 도움말을 나열하려면 간단히 입력하십시오.

dnf help

19. DNF 기록 보기

이미 실행된 dnf 명령 목록을 보려면 dnf 기록을 호출할 수 있습니다. 이렇게 하면 타임스탬프를 사용하여 무엇이 설치/제거되었는지 알 수 있습니다.

dnf history

20. 모든 그룹 패키지 나열

"dnf grouplist" 명령은 사용 가능하거나 설치된 모든 패키지를 인쇄하며, 언급된 내용이 없으면 알려진 모든 그룹을 나열합니다.

dnf grouplist

21. DNF를 사용하여 그룹 패키지 설치

그룹 패키지(예: 교육용 소프트웨어)로 함께 번들로 묶인 패키지 그룹을 설치하려면 다음과 같이 하세요.

dnf groupinstall 'Educational Software'

22. 그룹 패키지 업데이트

아래 명령을 실행하여 그룹 패키지(예: 교육용 소프트웨어)를 업데이트해 보겠습니다.

dnf groupupdate 'Educational Software'

23. 그룹 패키지 제거

그룹 패키지(예: 교육용 소프트웨어)를 제거할 수 있습니다.

dnf groupremove 'Educational Software'

24. 특정 저장소에서 패키지 설치

DNF를 사용하면 다음과 같이 저장소(epel)에서 특정 패키지(예: phpmyadmin)를 설치할 수 있습니다.

dnf --enablerepo=epel install phpmyadmin

25. 설치된 패키지를 안정적인 릴리스에 동기화

"dnf distro-sync" 명령은 설치된 모든 패키지를 활성화된 저장소에서 사용할 수 있는 최신 안정 버전과 동기화하는 데 필요한 옵션을 제공합니다. 패키지를 선택하지 않으면 설치된 모든 패키지가 동기화됩니다.

dnf distro-sync

26. 패키지 재설치

"dnf restart nano" 명령은 이미 설치된 패키지(예: nano)를 다시 설치합니다.

dnf reinstall nano

27. 패키지 다운그레이드

"다운그레이드" 옵션은 가능한 경우 명명된 패키지(예: acpid)를 더 낮은 버전으로 다운그레이드합니다.

dnf downgrade acpid
샘플 출력
Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.

내 관찰: DNF는 예상대로 패키지를 다운그레이드하지 않았습니다. 버그로도 보고되었습니다.

결론

DNF는 최첨단 패키지 관리자 YUM의 상위 상태입니다. 제가 생각하는 것처럼 이것은 많은 숙련된 Linux 시스템 관리자가 칭찬하지 않을 많은 처리를 자동으로 수행하는 경향이 있습니다. 예를 들면 다음과 같습니다.

  1. --skip-broken은 DNF에서 인식되지 않으며 대안이 없습니다.
  2. 'resolvedep' 명령과 같은 것은 없지만 dnf 제공을 실행할 수 있습니다.
  3. 패키지 종속성을 찾는 'deplist' 명령은 없습니다.
  4. 저장소를 제외한다는 것은 설치 및 업데이트 시에만 해당 저장소를 제외하는 yum과 달리 모든 작업에 제외가 적용된다는 것을 의미합니다.

몇몇 Linux 사용자는 Linux 생태계가 움직이는 방식에 만족하지 않습니다. 먼저 Systemd는 init system v를 제거했으며 이제 DNF는 Fedora 22 이상에서 RHEL 및 CentOS에서 더 빨리 YUM을 대체할 예정입니다.

어떻게 생각하나요? 배포판이며 전체 Linux 생태계는 사용자를 소중히 여기지 않고 그들의 의지에 반하여 움직이고 있습니다. 또한 IT 업계에서는 “깨지지 않았다면 왜 고쳐야 할까요?”라는 말을 자주 하는데, init System V도 손상되지 않았고 YUM도 손상되지 않았습니다.

지금은 여기까지입니다. 아래 댓글로 여러분의 소중한 생각을 알려주세요. 우리를 좋아하고 공유하고 우리가 퍼질 수 있도록 도와주세요.