Title: πŸ“¦ DNF β€” RHEL/Fedora Group: Package Managers Icon: πŸ“¦ Order: 2 ## Table of Contents - [Configuration](#-configuration--конфигурация) - [Core Management](#-core-management--основноС-ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅) - [Sysadmin Operations](#-sysadmin-operations--ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ-систСмного-администратора) - [Troubleshooting](#-troubleshooting--устранСниС-Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ) - [Comparison: DNF vs YUM](#-comparison-dnf-vs-yum) - [Security](#-security--Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ) --- # πŸ“¦ DNF Cheatsheet (RHEL/Fedora/CentOS) Dandified YUM (DNF) is the next-generation version of the Yellowdog Updater, Modified (yum), a package manager for .rpm-based distributions. / Dandified YUM (DNF) β€” это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Yellowdog Updater, Modified (yum), ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для дистрибутивов Π½Π° Π±Π°Π·Π΅ .rpm. --- ## βš™οΈ Configuration / ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ### Main Configuration Files / ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ `/etc/dnf/dnf.conf` `/etc/yum.repos.d/*.repo` ### Add Repository / Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ```bash sudo dnf config-manager --add-repo # Add repository / Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ sudo dnf config-manager --set-enabled # Enable repository / Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ sudo dnf config-manager --set-disabled # Disable repository / ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ``` ### Proxy Configuration / Настройка прокси `/etc/dnf/dnf.conf` ```ini proxy=http://: proxy_username= proxy_password= ``` --- ## πŸ›  Core Management / ОсновноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ### Update & Upgrade / ОбновлСниС ```bash sudo dnf check-update # Check for updates / ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ sudo dnf upgrade # Upgrade packages / ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ sudo dnf upgrade # Update specific package / ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ sudo dnf upgrade --refresh # Force metadata refresh / ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ``` ### Install & Remove / Установка ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ```bash sudo dnf install # Install package / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ sudo dnf install # Install multiple / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ нСсколько sudo dnf install # Install from URL / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎ URL sudo dnf localinstall # Install local RPM / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ RPM sudo dnf reinstall # Reinstall package / ΠŸΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ sudo dnf remove # Remove package / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ sudo dnf autoremove # Remove unused dependencies / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ зависимости ``` ### Search & Info / Поиск ΠΈ информация ```bash dnf search # Search packages / Поиск ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² dnf info # Show package details / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° dnf list installed # List installed packages / Бписок установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² dnf list available # List available packages / Бписок доступных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² dnf repoquery --list # List files in package / Бписок Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ dnf provides # Find package owning file / Найти ΠΏΠ°ΠΊΠ΅Ρ‚, Π²Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠΌ ``` ### Groups / Π“Ρ€ΡƒΠΏΠΏΡ‹ Install collections of software (e.g., "Server with GUI", "Development Tools"). / Установка ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ПО. ```bash dnf group list # List groups / Бписок Π³Ρ€ΡƒΠΏΠΏ dnf group summary # Show group summary / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сводку ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ sudo dnf group install "" # Install group / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ sudo dnf group remove "" # Remove group / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ``` --- ## πŸ”§ Sysadmin Operations / ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ систСмного администратора ### Clean & Maintenance / ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΈ обслуТиваниС ```bash sudo dnf clean all # Remove cached data / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ sudo dnf clean dbcache # Clean metadata / ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ sudo dnf makecache # Update metadata cache / ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ кэш ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ``` ### History & Undo / Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ > [!IMPORTANT] > DNF keeps a history of transactions, allowing you to undo or redo changes. / DNF Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, позволяя ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ измСнСния. ```bash sudo dnf history # Show transaction history / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ sudo dnf history info # Show details of transaction / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ sudo dnf history undo # Undo transaction / ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ sudo dnf history rollback # Rollback to before transaction / ΠžΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ``` ### Modules / ΠœΠΎΠ΄ΡƒΠ»ΠΈ Manage versions of applications (streams). / Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ). ```bash dnf module list # List modules / Бписок ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ dnf module list # List specific module / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ sudo dnf module enable : # Enable stream / Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ sudo dnf module install : # Install stream / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ sudo dnf module reset # Reset module stream / Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ модуля ``` ### Logs / Π›ΠΎΠ³ΠΈ - **DNF Log:** `/var/log/dnf.log` - Main log file. - **RPM Log:** `/var/log/dnf.rpm.log` - RPM transaction log. ```bash tail -f /var/log/dnf.log # Monitor DNF activity / ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ активности DNF ``` --- ## 🚨 Troubleshooting / УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ### Metadata Issues / ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ If you encounter synchronization errors: ```bash sudo dnf clean all sudo rm -rf /var/cache/dnf sudo dnf makecache ``` ### RPM Database Recovery / ВосстановлСниС Π±Π°Π·Ρ‹ RPM > [!CAUTION] > Rebuilding the RPM database carries risks. Backup `/var/lib/rpm` first. / ΠŸΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΉΠΊΠ° Π±Π°Π·Ρ‹ RPM нСсСт риски. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ копию `/var/lib/rpm`. ```bash sudo rpm --rebuilddb # Rebuild database / ΠŸΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ``` ### Broken Dependencies / Π‘Π»ΠΎΠΌΠ°Π½Π½Ρ‹Π΅ зависимости ```bash sudo dnf distro-sync # Synchronize packages to latest versions / Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄ΠΎ послСдних вСрсий sudo package-cleanup --problems # List dependency problems / Бписок ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с зависимостями sudo package-cleanup --orphans # List orphan packages / Бписок ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²-сирот ``` --- ## πŸ“Š Comparison: DNF vs YUM | Feature | `dnf` | `yum` (Legacy) | | :--- | :--- | :--- | | **Performance** | Faster dependency resolution (C/C++) | Slower (Python) | | **Memory Usage** | Optimized / ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ | High / ВысокоС | | **API** | Stable, documented API | Undocumented | | **Command Syntax** | Mostly compatible | Original | --- ## πŸ”’ Security / Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ### GPG Keys / GPG ΠšΠ»ΡŽΡ‡ΠΈ Manage keys used to verify packages. / Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ```bash rpm -qa gpg-pubkey* # List installed keys / Бписок установлСнных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ sudo rpm --import # Import key / Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ```