DNF5-DO(8)

NAME
dnf5-do - Do Command

SYNOPSIS

dnf5 do [options] [arguments]

DESCRIPTION

The do command is a universal command for package management in DNF5. It allows a user to define multiple actions (install, remove, upgrade, downgrade, and reinstall).

Unlike a series of specific commands (install, remove, upgrade, downgrade, and reinstall), the do command handles all requested actions together and performs them in a single transaction. This simplifies complex operations and makes them more efficient.

Another difference is that the do command allows for the explicit specification of object types in the transaction: package, group, or auto. For the group type, it is possible to specify whether a group ID or a group name is used. By default, the auto type is active. In this mode, the do command behaves like other commands, inferring the object's type from its specification. For example, if a specification starts with the @ character, it is treated as a group ID or a module.

Individual actions and object types are specified by options and are combinable.

Other options have the same meaning and use as with the commands (install, remove, upgrade, downgrade, and reinstall). The exceptions are 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. Additionally, they can be repeated with different values.

OPTIONS

--action
    Action to be done on the following items.

    This is a mandatory option that must precede the transaction's items (objects). The do command needs this information to know which action to perform on the specified items. Supports: install, remove, upgrade, downgrade, reinstall.

--type
    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

dnf5 do --action=install tito
    Install the tito package.

dnf5 do --action=remove sddm-wayland-plasma --action=install sddm-x11
    Replace package sddm-wayland-plasma with sddm-x11.

dnf5 do --action=install --type=group id=office 'name=Games and Entertainment' --type=package iftop --action=remove atop
    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 pkg --from-repo=myrepo1 pkg1 --from-repo=myrepo2 pkg2 --action=remove --installed-from-repo=compromised_repo '*'
    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 the compromised_repo.

SEE ALSO
dnf5-install(8), Install command <#install-command-ref-label>
dnf5-remove(8), Remove command <#remove-command-ref-label>
dnf5-upgrade(8), Upgrade command <#upgrade-command-ref-label>
dnf5-downgrade(8), Downgrade command <#downgrade-command-ref-label>
dnf5-reinstall(8), Reinstall command <#reinstall-command-ref-label>
dnf5-advisory(8), Advisory command <#advisory-command-ref-label>
dnf5-specs(7), Patterns specification <#specs-misc-ref-label>

Author
See AUTHORS.md in dnf5 source distribution.

Copyright
Contributors to the dnf5 project.