DNF (소프트웨어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
DNF는 yum의 개선을 목표로 개발된 차세대 패키지 관리 시스템이다. 낮은 성능, 높은 메모리 사용량, 느린 의존성 해결 속도 등 yum의 단점을 해결하고자 libsolv를 사용하여 성능을 향상시켰다. DNF는 C++로 작성된 libdnf 라이브러리를 기반으로 하며, 페도라 리눅스 22부터 기본 패키지 관리자로 채택되었다. DNF는 libsolv, librepo, libcomps, hawkey 등의 구성 요소를 사용하며, install, remove, update 등의 명령어를 통해 패키지를 관리한다.
더 읽어볼만한 페이지
- 페도라 프로젝트 - 페도라 리거시
페도라 리거시는 2006년 12월 30일에 종료가 발표되어 2007년 2월 9일에 실제로 종료된 프로젝트이다. - 페도라 프로젝트 - 플리머스 (소프트웨어)
플리머스는 레드햇에서 개발한 소프트웨어로, 디스플레이, 그래픽, 로깅을 담당하며 데몬과 클라이언트로 구성되어 다양한 리눅스 배포판에서 널리 사용된다. - 리눅스 패키지 관리 관련 소프트웨어 - 어드밴스트 패키징 툴
어드밴스트 패키징 툴(APT)은 데비안 계열 리눅스 배포판에서 패키지를 관리하는 도구 모음으로, 패키지 설치, 삭제, 업데이트, 업그레이드 기능을 제공하며, 특히 패키지 간 의존성을 자동 관리하는 특징을 가진다. - 리눅스 패키지 관리 관련 소프트웨어 - ZYpp
ZYpp은 SUSE Linux 배포판의 소프트웨어 관리 엔진으로, YaST 패키지 관리자와 Red Carpet의 통합 필요성에 의해 개발되었으며, libsolv 통합 및 SAT 솔버 도입을 통해 패키지 관리 효율성을 높인 Zypper 명령줄 도구를 제공한다. - 레드햇 소프트웨어 - 매니지IQ
매니지IQ는 IT 부서의 효율적인 운영을 지원하는 소프트웨어로, 셀프 서비스, 규정 준수, 최적화 기능을 제공하며, 다양한 플랫폼을 지원하고 AI, 머신러닝 기술을 활용하여 클라우드 관리 기능을 개선하고 있지만, 기능 부족, 시스템 성능, 보안 취약점 등의 비판도 존재한다. - 레드햇 소프트웨어 - 시그윈
Cygwin은 윈도우에서 유닉스 시스템과 유사한 환경을 제공하는 소프트웨어로, POSIX API 구현 및 다양한 개발 도구를 통해 유닉스 기반 소프트웨어의 개발, 빌드, 실행을 지원한다.
| DNF (소프트웨어) - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
![]() | |
| 개발자 | 레드햇 |
| 최초 릴리스 | 2012년 1월 18일 |
| 저장소 | 저장소 |
| 프로그래밍 언어 | dnf4: 파이썬 dnf5: C |
| 운영 체제 | 리눅스 IBM AIX |
| 플랫폼 | RPM |
| 장르 | 패키지 관리 시스템 |
| 라이선스 | GPLv2+ LGPLv2.1+ New BSD License |
| 웹사이트 | 공식 웹사이트 |
| 릴리스 정보 (dnf4) | |
| 최신 버전 | 4.17.0 |
| 최신 릴리스 날짜 | 2023년 9월 1일 |
| 릴리스 정보 (dnf5) | |
| 최신 버전 | 5.1.4 |
| 최신 릴리스 날짜 | 2023년 9월 18일 |
2. 역사
DNF가 해결하고자 하는 yum의 인식된 결함으로는 낮은 성능, 높은 메모리 사용량, 반복적인 의존성 해결의 느린 속도 등이 있다.[8] DNF는 외부 의존성 해결 도구인 libsolv를 사용한다.[8]
DNF는 낮은 성능, 높은 메모리 사용량, 반복적인 의존성 해결의 느린 속도 등 Yum이 가진 문제점을 해결하기 위해 개발되었다.[8] DNF는 외부 의존성 해결 도구인 libsolv를 사용한다.[8]
DNF는 원래 파이썬으로 작성되었지만, 2016년 기준으로 C로 포팅하고 대부분의 기능을 파이썬 코드에서 새로운 libdnf 라이브러리로 옮기려는 노력이 진행 중이었다. 2018년, DNF 팀은 libdnf를 C에서 C++(C++)로 이전하기로 결정했다고 발표했다.[10][11] libdnf는 Linux 배포판에 구애받지 않는 패키지 시스템 추상화 라이브러리인 PackageKit에서 이미 사용되고 있으며, 해당 라이브러리는 DNF의 대부분 기능을 가지고 있지 않다.[12]
페도라 리눅스 41 출시 이후 DNF5가 새로운 기본 패키징 도구가 되었다. 이 릴리스는 새로운 성능 향상, 업데이트된 터미널 출력 및 완전 통합된 모듈성을 특징으로 한다.[13]
3. Yum의 문제점
Yum은 다음과 같은 문제점을 가지고 있었다.
또한, Yum은 파이썬 2로 작성되어 성능이 느리고 메모리를 많이 소비하며 메모리 누수를 일으키기 쉽다는 문제도 있었다.[23][24]
4. DNF의 개선 사항
DNF는 yum의 인식된 결함인 낮은 성능, 높은 메모리 사용량, 반복적인 의존성 해결의 느린 속도를 해결하고자 한다.[8] 이를 위해 DNF는 외부 의존성 해결 도구인 libsolv를 사용한다.[8]
DNF는 원래 파이썬으로 작성되었지만, 2016년 기준으로 C로 포팅하고 대부분의 기능을 파이썬 코드에서 새로운 libdnf 라이브러리로 옮기는 노력이 진행 중이었다. 2018년, DNF 팀은 libdnf를 C에서 C++(C++)로 이전하기로 결정했다.[10][11] libdnf는 Linux 배포판에 구애받지 않는 패키지 시스템 추상화 라이브러리인 PackageKit에서 이미 사용되고 있지만, DNF의 모든 기능을 가지고 있지는 않다.[12]
페도라 리눅스 41 출시 이후 DNF5가 새로운 기본 패키징 도구가 되었다. 이 릴리스는 성능 향상, 업데이트된 터미널 출력, 완전 통합된 모듈성을 특징으로 한다.[13]
DNF는 Yum의 후속 패키지 관리 시스템으로, 최첨단 SAT 기반의 의존성 리졸버를 탑재하여 2015년 5월 26일에 출시된 페도라 22의 표준 패키지 관리자로 채택되었다.[25] Python 3에도 대응했다.
Yum의 문제점은 다음과 같이 해결되었다.[26]
- API 문서 정비 및 테스트 환경 개선.
- (openSUSE의 ZYpp를 위해 개발된) '''libsolv'''를 통해 의존성을 해결하여 알고리즘 견고성 및 메모리 소비 효율 향상.
- '''hawkey''' 라이브러리(C 언어 및 Python 래퍼)를 통해 Python과 C 언어 간의 포괄적인 API를 제공하여 다른 언어에서도 쉽게 사용 가능.
- 메모리 소비량 감소 및 메타데이터 동기화 효율화.
DNF는 RPM, libsolv, hawkey 라이브러리를 사용하는 패키지 관리 시스템이다. '''librepo'''를 이용하여 메타데이터와 패키지 다운로드를 처리하고, '''libcomps'''를 통해 comps data를 효과적으로 처리하고 조작한다.
Yum과 비교하여 속도가 개선되었다는 보고도 있다.[27]
2016년 12월 20일, Yum과의 호환성 개선을 중시한 "DNF-2.0"이 출시되었다.[28]
2018년 6월 27일, 버전 3의 안정 버전인 "DNF-3.0.1"이 출시되었다.[29]
2018년 12월 17일, 버전 4의 안정 버전인 "DNF-4.0.9.1"이 출시되었다.[29]
5. 구성 요소 (의존 라이브러리)
DNF는 여러 핵심 라이브러리를 기반으로 작동하여 효율적인 패키지 관리를 제공한다. 주요 구성 요소는 다음과 같다.
| 라이브러리 | 설명 | 라이선스 |
|---|---|---|
| libdnf | DNF의 주요 기능을 제공하며, C와 C++로 작성되었다. | LGPLv2+ |
| libsolv | 패키지 의존성 해결을 위한 충족 가능성 알고리즘을 제공한다. | BSD 허가서 |
| librepo | 리눅스 저장소에서 메타데이터와 패키지를 다운로드하는 API를 제공한다. | LGPLv2+ |
| libcomps | yum.comps 라이브러리를 대체하며, comps data를 처리한다. | GPLv2+ |
| hawkey | libsolv를 위한 고수준 API를 제공하며, C와 파이썬으로 작성되었다. | LGPLv2+ |
DNF는 이러한 라이브러리들을 통해 YUM의 문제점이었던 낮은 성능, 높은 메모리 사용량, 느린 의존성 해결 속도 등을 개선했다.[8] 특히, libsolv는 openSUSE의 ZYpp에서 사용되는 검증된 의존성 해결 알고리즘을 제공하여 더욱 안정적이고 효율적인 패키지 관리를 가능하게 한다.[26]
5. 1. libdnf
C, C++로 작성되었으며, LGPLv2+ 라이선스를 따른다. DNF와 기반 라이브러리들의 고수준 API를 제공한다.[8] DNF는 외부 의존성 해결 도구인 libsolv를 사용한다.[8]DNF는 원래 파이썬으로 작성되었지만, 2016년부터 C로 포팅하고 대부분의 기능을 파이썬 코드에서 새로운 libdnf 라이브러리로 옮기려는 노력이 진행되었다.[9] 2018년, DNF 팀은 libdnf를 C에서 C++(C++)로 이전하기로 결정했다.[10][11] libdnf는 Linux 배포판에 구애받지 않는 패키지 시스템 추상화 라이브러리인 PackageKit에서 이미 사용되고 있지만, 해당 라이브러리는 DNF의 대부분 기능을 가지고 있지 않다.[12]
페도라 리눅스 41 출시 이후 DNF5가 새로운 기본 패키징 도구가 되었다. 이 릴리스는 새로운 성능 향상, 업데이트된 터미널 출력 및 완전 통합된 모듈성을 특징으로 한다.[13]
5. 2. libsolv
libsolv는 패키지 의존성 문제를 해결하기 위해 충족 가능성 알고리즘을 사용하는 라이브러리이다. 패키지 관리 및 저장소 이용 시 사용되며, C로 작성되었고 BSD 허가서를 따른다. DNF는 외부 의존성 해결 도구로 libsolv를 사용한다.[8] libsolv는 openSUSE의 ZYpp를 위해 개발된 것으로, 더욱 견고한 알고리즘과 효율적인 메모리 소비를 제공한다.[26] DNF는 RPM에 libsolv와 hawkey 라이브러리를 사용하는 패키지 관리 시스템이다.5. 3. librepo
librepo는 리눅스 저장소에서 메타 데이터와 패키지를 내려받을 때 사용하는 API를 제공하며, libcURL과 유사한 C와 파이썬용 API로 구성되어 있다. C, LGPLv2+로 배포된다.5. 4. libcomps
libcomps는 Yum의 "yum.comps library"를 대체하기 위해 C로 작성된 라이브러리이다. 파이썬용 바인딩도 제공한다. 라이선스는 LGPL v2+이다.[1]5. 5. hawkey
C 언어 및 Python 래퍼인 '''hawkey'''는 Python과 C 언어 간의 포괄적인 API를 제공하여, 다른 언어에서도 다루기 쉽게 했다.[26] DNF는 RPM, libsolv, hawkey 라이브러리를 사용하는 패키지 관리 시스템이다.- [https://github.com/rpm-software-management/hawkey]
- libsolv 라이브러리를 위한 고수준 API
- libsolv에 최적화된 심플한 C 언어와 파이썬으로 작성된 API
- C 언어, LGPLv2+
6. 명령어
| 명령어 | 설명 |
|---|---|
| `dnf install 패키지_이름` | 지정된 패키지 및 해당 패키지의 종속성을 설치한다. |
| `dnf remove 패키지_이름` | 지정된 패키지 및 관련 종속성을 제거한다. |
| `dnf check-update` | 업데이트 가능한 패키지를 표시한다. (실제 업데이트는 하지 않음) |
| `dnf update` | 설치된 모든 프로그램을 업데이트한다. |
| `dnf upgrade 패키지_이름` | 패키지를 업데이트한다. (패키지 이름을 지정하지 않으면 설치된 패키지 중 업데이트 가능한 모든 패키지를 업데이트한다.) |
| `dnf search 키워드` | 키워드로 패키지를 검색한다. |
| `dnf provides 패키지_이름` | 지정된 패키지의 종속성을 표시한다. |
| `dnf provides 파일_이름` | 지정된 파일을 제공하는 패키지를 검색한다. |
7. 채택
DNF는 2015년 5월에 출시된 페도라 버전 22부터 기본 명령줄 패키지 관리자가 되었다.[6] libdnf 라이브러리는 PackageKit에서 패키지 백엔드로 사용되며,[12] 이는 GUI를 제공한다. 이후 dnfdragora가 DNF의 또 다른 그래픽 프런트엔드로 페도라 27을 위해 개발되었다.[14][15] DNF는 버전 6부터 매지아 리눅스의 대체 패키지 관리자로 사용 가능하며, 향후 기본 관리자가 될 수 있다.[16]
레드햇 엔터프라이즈 리눅스와 그 확장판인 알마리눅스, 록키 리눅스에서 yum은 dnf의 별칭이다.[7]
8. GUI
DNF는 PackageKit에서 패키지 백엔드로 사용되는 libdnf 라이브러리를 통해 GUI를 제공한다.[12] 이후 dnfdragora가 페도라 27을 위해 개발된 DNF의 또 다른 그래픽 프런트엔드이다.[14][15]
참조
[1]
Github
Tag 0.6.4-1 for rpm-software-management/dnf
https://github.com/r[...]
[2]
웹사이트
DNF
https://fedoraprojec[...]
2018-05-21
[3]
웹사이트
What does DNF stand for
https://dnf.readthed[...]
2018-05-21
[4]
Github
README.rst · rpm-software-management/dnf
https://github.com/r[...]
[5]
웹사이트
Will DNF Replace Yum?
http://www.linux-mag[...]
2015-05-28
[6]
웹사이트
Fedora 22 Released, See What's New [Workstation]
http://www.webupd8.o[...]
WebUpd8
2015-05-28
[7]
뉴스
"What's new with Red Hat Enterprise Linux 8 and Red Hat Virtualization"
https://www.techrepu[...]
TechRepublic
2019-09-24
[8]
웹사이트
DNF and Yum in Fedora
https://lwn.net/Arti[...]
LWN.net
2014-01-15
[9]
웹사이트
DNF into C initiative started
https://web.archive.[...]
2016-02-24
[10]
웹사이트
Announcing DNF 3 development
https://rpm-software[...]
2018-03-22
[11]
웹사이트
DNF 3: better performance and a move to C++
https://lwn.net/Arti[...]
2018-03-28
[12]
웹사이트
Use DNF rather than PackageKit on Fedora
https://ctrl.blog/en[...]
2017-07-05
[13]
웹사이트
Changes/ReplaceDnfWithDnf5
https://fedoraprojec[...]
2023-11-12
[14]
웹사이트
Changes/Replace yumex-dnf with dnfdragora - Fedora Project Wiki
https://fedoraprojec[...]
2021-09-27
[15]
웹사이트
F27 Self Contained Change: Replace Yumex-DNF with dnfdragora - devel - Fedora Mailing-Lists
https://lists.fedora[...]
2021-09-27
[16]
웹사이트
Mageia To Offer DNF, But Will Keep Using URPMI By Default
https://www.phoronix[...]
Phoronix
2016-09-05
[17]
웹사이트
Fedora 22で「Yum」は公式に死亡し、これからは「DNF」で!
http://www.softanten[...]
ソフトアンテナブログ
2015-05-18
[18]
웹사이트
yumからDNFへの移行
http://qiita.com/yun[...]
Increments Inc.
2015-05-28
[19]
웹사이트
DNF パッケージマネージャ
https://bitwalk.blog[...]
bitWalk's
2015-02-15
[20]
웹사이트
Will DNF Replace Yum?
http://www.linux-mag[...]
2015-05-28
[21]
웹사이트
2. Fedora の変更点 - システム管理者向け
https://docs.fedorap[...]
Fedora Project
2015-10-06
[22]
웹사이트
Fedora 22 Released, See What`s New Workstation
http://www.webupd8.o[...]
2015-05-28
[23]
웹사이트
DNF and Yum in Fedora
https://lwn.net/Arti[...]
2014-01-15
[24]
웹사이트
CentOS 5.2 x64でyum-cronとyum-updatesdの設定
https://web.archive.[...]
FC2ブログ
2009-02-11
[25]
웹사이트
Yum is dead, long live DNF
http://dnf.baseurl.o[...]
WordPress
2015-05-11
[26]
웹사이트
yum->dnfのメリット
http://qiita.com/kwi[...]
Increments Inc.
2015-05-18
[27]
웹사이트
Yum と DNF 違いなど
http://1bed.saloon.j[...]
愛しく切ない1bed
2015-06-20
[28]
웹사이트
yumの後継を目指すパッケージマネージャ「DNF-2.0」リリース
https://mag.osdn.jp/[...]
OSDN
2016-12-22
[29]
웹사이트
rpm-software-management
https://github.com/r[...]
GitHub
2018-12-17
[30]
Github
Tag 0.6.4-1 for rpm-software-management/dnf
https://github.com/r[...]
[31]
Github
Tags · rpm-software-management/dnf
https://github.com/r[...]
[32]
Github
Tags · rpm-software-management/dnf5
https://github.com/r[...]
[33]
웹인용
Will DNF Replace Yum?
http://www.linux-mag[...]
2015-05-28
[34]
웹인용
Fedora 22 Released, See What`s New [Workstation]
http://www.webupd8.o[...]
WebUpd8
2015-05-28
[35]
웹인용
"What's new with Red Hat Enterprise Linux 8 and Red Hat Virtualization"
https://www.techrepu[...]
TechRepublic
2019-09-24
[36]
웹인용
DNF and Yum in Fedora
https://lwn.net/Arti[...]
LWN.net
2014-01-15
[37]
웹인용
DNF into C initiative started
http://dnf.baseurl.o[...]
2016-02-24
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
