DNF5-DO(8)

πŸ’– DNF5-DO(8) β€” the do command, bestie edition πŸ’–

okay so you opened the manual page for dnf5-do and honestly? you picked a good one. this is the universal command, the main character of DNF5, and i'm gonna walk you through every single bit of it. no skips. no skimming. we're doing this together 🫢


✨ NAME ✨

dnf5-do β€” the Do Command πŸ’…


✨ SYNOPSIS ✨

dnf5 do [options] [arguments]

that's it. that's the whole vibe. options go in, arguments go in, stuff happens ✨


✨ DESCRIPTION ✨

so do is like… the universal command for package management in DNF5? it lets you define multiple actions at once β€” install, remove, upgrade, downgrade, and reinstall. all of them. in one place. iconic behavior tbh πŸ‘‘

here's the tea: unlike running a whole series of specific commands (like install, then remove, then upgrade, then downgrade, then reinstall β€” exhausting), the do command handles all your requested actions together and performs them in a single transaction. this simplifies complex operations and makes them more efficient. slay. less chaos, more efficiency πŸ’…

another difference (and this is the good part) is that do lets you explicitly specify object types in the transaction: package, group, or auto. and for the group type specifically, you can say whether it's a group ID or a group name being used. by default, the auto type is active. in this mode, do behaves like the other commands do, just inferring the object's type from its specification. for example β€” and this is the classic β€” if a specification starts with the @ character, it's treated as a group ID or a module ✨

individual actions and object types are specified by options, and they're combinable. mix and match, bestie πŸŽ€

other options have the same meaning and use as they do with the commands (install, remove, upgrade, downgrade, and reinstall). the exceptions? the --installed-from-repo and --from-repo options. while they have the same meaning, they only apply to the packages that follow them on the command line. and additionally, they can be repeated with different values. periodt.


✨ OPTIONS ✨

  • --action β€” the action to be done on the following items. this is a mandatory option that must precede the transaction's items (objects). do needs this info to know which action to perform on the specified items. supports: install, remove, upgrade, downgrade, reinstall.
  • --type β€” the type of the following items. supports: auto, package, group. auto is the default until the type option is used.
  • --allowerasing β€” allow removing of installed packages to resolve any potential dependency problems.
  • --skip-broken β€” resolve any dependency problems by removing packages that are causing problems from the transaction.
  • --skip-unavailable β€” allow skipping packages that are not available in repositories. all available packages will be installed.
  • --allow-downgrade β€” enable downgrade of dependencies when resolving the requested operation.
  • --no-allow-downgrade β€” disable downgrade of dependencies when resolving the requested operation.
  • --installed-from-repo=REPO_ID,... β€” filters installed packages by the ID of the repository they were installed from.
  • --from-repo=REPO_ID,... β€” packages (or their provides) explicitly specified on the command line will only be looked up in the specified repositories. these repositories are automatically enabled. repository enabling and disabling still applies. dependencies of these packages will be resolved from any enabled repository.
  • --from-vendor=VENDOR,... β€” list of vendors separated by commas or spaces. globs are supported (e.g., --from-vendor='Fedora\ project, vendorA, vendorB*, vendorC'). packages (or their provides) explicitly specified on the command line will only be looked up from the specified vendors. the vendor change check is bypassed for these packages. the vendor is ignored or vendor change policies (if allow_vendor_change=0) will still be used for packages that satisfy dependencies.
  • --downloadonly β€” download the resolved package set without executing an RPM transaction.
  • --offline β€” store the transaction to be performed offline. see dnf5-offline(8), Offline command <#offline-command-ref-label>.
  • --transient β€” applicable only on bootc (bootable containers) systems. perform transactions using a transient overlay which will be lost on the next reboot. see also the persistence <#persistence-options-label> configuration option.
  • --advisories=ADVISORY_NAME,... β€” include content contained in advisories with specified name. this is a list option. expected values are advisory IDs, e.g. FEDORA-2201-123. any transaction command (install, upgrade) will fail with an error if there is no existing advisory in the list; this can be bypassed by using the --skip-unavailable switch.
  • --advisory-severities=ADVISORY_SEVERITY,... β€” include content contained in advisories with specified severity. this is a list option. accepted values are: critical, important, moderate, low, none.
  • --bzs=BUGZILLA_ID,... β€” include content contained in advisories that fix a ticket of the given Bugzilla ID. this is a list option. expected values are numeric IDs, e.g. 123123. any transaction command (install, upgrade) will fail with an error if there is no advisory fixing the given ticket; this can be bypassed by using the --skip-unavailable switch.
  • --cves=CVE_ID,... β€” include content contained in advisories that fix a ticket of the given CVE (Common Vulnerabilities and Exposures) ID. this is a list option. expected values are string IDs in CVE format, e.g. CVE-2201-0123. any transaction command (install, upgrade) will fail with an error if there is no advisory fixing the given ticket; this can be bypassed by using the --skip-unavailable switch.
  • --security β€” include content contained in security advisories.
  • --bugfix β€” include content contained in bugfix advisories.
  • --enhancement β€” include content contained in enhancement advisories.
  • --newpackage β€” include content contained in newpackage advisories.

✨ EXAMPLES ✨

okay these are the ones you're actually gonna type, so pay attention bestie πŸ‘€

install the tito package:

dnf5 do --action=install tito

replace package sddm-wayland-plasma with sddm-x11:

dnf5 do --action=remove sddm-wayland-plasma --action=install sddm-x11

install the office group (by ID), the Games and Entertainment group (by name), and the iftop package, and remove the atop package:

dnf5 do --action=install --type=group id=office 'name=Games and
Entertainment' --type=package iftop --action=remove atop

install the pkg package from any enabled repository, as well as package pkg1 from the myrepo1 repository and package pkg2 from the myrepo2 repository. dependencies for these packages are installed from any enabled repository. additionally, remove all packages installed from compromised_repo:

dnf5 do --action=install pkg --from-repo=myrepo1 pkg1
--from-repo=myrepo2 pkg2 --action=remove
--installed-from-repo=compromised_repo '*'

see how it all flows together? one command, so many actions, single transaction 🌈 obsessed.


✨ SEE ALSO ✨


✨ Author ✨

see AUTHORS.md in the dnf5 source distribution 🫢


contributors to the dnf5 project.


and that's the whole page, bestie πŸ’– this was the dnf5 manual, DNF5-DO(8), dated Sep 24, 2026. go forth and do your thing, you've got this πŸ‘‘βœ¨

πŸ“¦ where this page comes from