hostprofi.ru
Подобрать хостинг
Термин

DNF

краткое определение

DNF (Dandified YUM) — менеджер пакетов в RPM-дистрибутивах (RHEL, AlmaLinux, Fedora). Замена YUM с более быстрым resolver зависимостей. Совместим по синтаксису с YUM.

DNF (Dandified YUM) — стандартный менеджер пакетов в современных RPM-дистрибутивах: Fedora, RHEL 8+, CentOS Stream, AlmaLinux, Rocky Linux. Полностью совместим с YUM по синтаксису, но использует библиотеку libsolv для разрешения зависимостей — значительно быстрее и надёжнее.

Основные команды

dnf install nginx          # установить пакет
dnf update                 # обновить все пакеты
dnf update nginx           # обновить конкретный пакет
dnf remove nginx           # удалить пакет
dnf search nginx           # поиск по имени и описанию
dnf info nginx             # информация о пакете
dnf list installed         # список установленных пакетов
dnf history                # история транзакций
dnf history undo N         # отменить транзакцию N
dnf autoremove             # удалить неиспользуемые зависимости
dnf clean all              # очистить кэш

Репозитории

Репозитории настраиваются в /etc/yum.repos.d/*.repo. Стандартные: BaseOS, AppStream, Extras. Добавление EPEL (Extra Packages for Enterprise Linux — пакеты от Fedora Project):

dnf install epel-release
dnf install htop tmux mc

Добавление Nginx official repo:

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF
dnf install nginx

DNF vs apt

ПараметрDNF (RHEL/Fedora)apt (Debian/Ubuntu)
Формат пакетов.rpm.deb
Конфиг репозиториев/etc/yum.repos.d/*.repo/etc/apt/sources.list.d/*.list
Обновление системыdnf updateapt upgrade
Кэш метаданныхdnf makecacheapt update

История

YUM (Yellowdog Updater Modified) разработан в 2003 году как улучшение RPM. DNF создан в рамках Fedora Project, появился в Fedora 18 (2013) как экспериментальный. Стал основным пакетным менеджером в Fedora 22 (2015). В RHEL 8 (2019) YUM стал псевдонимом для DNF — yum install nginx и dnf install nginx идентичны.

На что обращать внимание

После установки Nginx или MariaDB через DNF сервис не запускается автоматически — нужно systemctl enable --now nginx. sudo обязателен для DNF: пакеты устанавливаются в системные директории. dnf check-update — просмотр доступных обновлений без установки. dnf provides /usr/bin/nginx — найти пакет, предоставляющий файл.

Модульность и потоки

DNF Modules позволяют устанавливать разные версии одного пакета параллельно. Например, dnf module enable php:8.2 переключает поток PHP без конфликтов с системными зависимостями. Это особенно полезно на серверах, где несколько приложений требуют разные версии PHP или Node.js.

Транзакционная история DNF: dnf history показывает все установки/удаления с датами. dnf history undo 5 откатывает пятую транзакцию, возвращая систему к предыдущему состоянию пакетов. Это инструмент восстановления после неудачного обновления.

Практические команды

Поиск пакета: dnf search nginx. Информация о пакете: dnf info nginx. Список установленных: dnf list installed. Обновление всей системы: dnf update -y. Удаление с зависимостями: dnf autoremove nginx.

Репозиторий EPEL добавляет пакеты для AlmaLinux и Rocky Linux, которых нет в базовой поставке. Docker CE устанавливается из официального репозитория Docker через dnf config-manager --add-repo.

Другие термины