Provided by: dnf_4.14.0-3_all bug

NAME

       yum2dnf - Changes in DNF compared to YUM

--SKIP-BROKEN

       For install command:

       The  --skip-broken  option  is  an alias for --setopt=strict=0. Both options could be used
       with DNF to skip all unavailable packages or packages with broken  dependencies  given  to
       DNF without raising an error causing the whole operation to fail. This behavior can be set
       as default in dnf.conf file. See strict conf option.

       For upgrade command:

       The semantics that were supposed to trigger in YUM with  --skip-broken  are  now  set  for
       plain  dnf update as a default. There is no need to use --skip-broken with the dnf upgrade
       command. To use only the latest versions of packages in transactions, there is the  --best
       command line switch.

UPDATE AND UPGRADE COMMANDS ARE THE SAME

       Invoking  dnf  update or dnf upgrade, in all their forms, has the same effect in DNF, with
       the latter being preferred. In YUM yum upgrade was exactly like yum --obsoletes update.

CLEAN_REQUIREMENTS_ON_REMOVE ON BY DEFAULT

       The clean_requirements_on_remove switch is on by default in DNF. It can thus be  confusing
       to  compare  the "remove" operation results between DNF and YUM as by default DNF is often
       going to remove more packages.

NO RESOLVEDEP COMMAND

       The YUM version of this command is maintained for legacy reasons only. The user  can  just
       use dnf provides to find out what package provides a particular file.

NO DEPLIST COMMAND

       An  alternative  to  the  YUM deplist command to find out dependencies of a package is dnf
       repoquery --deplist using repoquery command.

       NOTE:
          Alternatively there is a YUM compatibility support where yum deplist is alias  for  dnf
          repoquery --deplist command

EXCLUDES AND REPO EXCLUDES APPLY TO ALL OPERATIONS

       YUM  only  respects  excludes  during  installs  and  upgrades.  DNF  extends  this to all
       operations, among others erasing and listing. If you e.g.  want  to  see  a  list  of  all
       installed python-f* packages but not any of the Flask packages, the following will work:

          dnf -x '*flask*' list installed 'python-f*'

THE INCLUDE OPTION HAS BEEN REMOVED

       Inclusion  of  other  configuration  files  in  the  main  configuration file is no longer
       supported.

DNF PROVIDES /BIN/<FILE> IS NOT FULLY SUPPORTED

       After UsrMove there's no directory /bin on Fedora  systems  and  no  files  get  installed
       there,  /bin  is  only  a  symlink created by the filesystem package to point to /usr/bin.
       Resolving the symlinks to their real path would only give the user a false sense that this
       works, while in fact provides requests using globs such as:

          dnf provides /b*/<file>

       will  fail  still  (as they do in YUM now). To find what provides a particular binary, use
       the actual path for binaries on Fedora:

          dnf provides /usr/bin/<file>

       Also see related Fedora bugzillas 982947 and 982664.

SKIP_IF_UNAVAILABLE COULD BE ENABLED BY DEFAULT

       In  some  distributions  DNF  is  shipped  with  skip_if_unavailable=True   in   the   DNF
       configuration  file.  The reason for the change is that third-party repositories can often
       be unavailable. Without this setting in the relevant  repository  configuration  file  YUM
       immediately stops on a repository synchronization error, confusing and bothering the user.

       See the related Fedora bug 984483.

OVERWRITE_GROUPS DROPPED, COMPS FUNCTIONS ACTING AS IF ALWAYS DISABLED

       This  config  option has been dropped. When DNF sees several groups with the same group ID
       it merges the groups' contents together.

MIRRORLIST_EXPIRE DROPPED

       To simplify things for the user, DNF uses metadata_expire for both expiring  metadata  and
       the mirrorlist file (which is a kind of metadata itself).

METALINK NOT RECOGNIZED IN THE MIRRORLIST REPO OPTION

       The following part of yum.conf(5) no longer applies for the mirrorlist option:
          As  a special hack if the mirrorlist URL contains the word "metalink" then the value of
          mirrorlist is copied to metalink (if metalink is not set).

       The relevant repository configuration files have been  fixed  to  respect  this,  see  the
       related Fedora bug 948788.

ALWAYSPROMPT DROPPED

       Unsupported to simplify the configuration.

UPGRADE_REQUIREMENTS_ON_INSTALL DROPPED

       Dropping  this  config  option  with  blurry  semantics  simplifies the configuration. DNF
       behaves as if this was disabled. If the user wanted to upgrade everything  to  the  latest
       version she'd simply use dnf upgrade.

DNF HISTORY ROLLBACK CHECK DROPPED

       Since DNF tolerates the use of other package managers, it is possible that not all changes
       to the RPMDB are stored in the history of transactions. Therefore, DNF does  not  fail  if
       such a situation is encountered and thus the force option is not needed anymore.

PACKAGES REPLACEMENT WITHOUT YUM SWAP

       Time  after  time one needs to remove an installed package and replace it with a different
       one, providing the same capabilities while other packages depending on these  capabilities
       stay  installed.  Without  (transiently) breaking consistency of the package database this
       can be done by performing the remove and the install in one transaction. The common way to
       set up such a transaction in DNF is to use dnf shell or use the --allowerasing switch.

       E.g.  say  you want to replace A (providing P)  with B (also providing P, conflicting with
       A) without deleting C (which requires P) in the process. Use:

          dnf --allowerasing install B

       This command is equal to yum swap A B.

       DNF provides swap command but only dnf swap A B syntax is supported

DEPENDENCY PROCESSING DETAILS ARE NOT SHOWN IN THE CLI

       During its depsolving phase, YUM outputs lines similar to:

          ---> Package rubygem-rhc.noarch 0:1.16.9-1.fc19 will be an update
          --> Processing Dependency: rubygem-net-ssh-multi >= 1.2.0 for package: rubygem-rhc-1.16.9-1.fc19.noarch

       DNF does not output information like this. The technical reason is  that  depsolver  below
       DNF  always  considers all dependencies for update candidates and the output would be very
       long. Secondly, even in YUM this output gets confusing very quickly especially  for  large
       transactions and so does more harm than good.

       See the related Fedora bug 1044999.

DNF PROVIDES COMPLIES WITH THE YUM DOCUMENTATION OF THE COMMAND

       When one executes:

          yum provides sandbox

       YUM  applies extra heuristics to determine what the user meant by sandbox, for instance it
       sequentially prepends entries from the PATH environment  variable  to  it  to  see  if  it
       matches  a  file  provided by some package. This is an undocumented behavior that DNF does
       not emulate. Just typically use:

          dnf provides /usr/bin/sandbox

       or even:

          dnf provides '*/sandbox'

       to obtain similar results.

BANDWIDTH LIMITING

       DNF supports the throttle and bandwidth options familiar from YUM.  Contrary to YUM,  when
       multiple  downloads  run simultaneously the total downloading speed is throttled. This was
       not possible in YUM since downloaders ran in different processes.

INSTALLONLYPKGS CONFIG OPTION

       Compared to YUM, DNF appends list values from the installonlypkgs  config  option  to  DNF
       defaults, where YUM overwrites the defaults by option values.

THE USAGE OF DELTA RPM FILES

       The  boolean  deltarpm  option controls whether delta RPM files are used. Compared to YUM,
       DNF does not support  deltarpm_percentage  and  instead  chooses  some  optimal  value  of
       DRPM/RPM ratio to decide whether using deltarpm makes sense in the given case.

HANDLING .SRPM FILES AND NON-EXISTENT PACKAGES

       DNF  will  terminate early with an error if a command is executed requesting an installing
       operation on a local .srpm file:

          $ dnf install fdn-0.4.17-1.fc20.src.rpm tour-4-6.noarch.rpm
          Error: Will not install a source rpm package (fdn-0.4.17-1.fc20.src).

       The same applies for package specifications that do not match any available package.

       YUM will only issue a warning in this case and continue installing the "tour" package. The
       rationale  behind the result in DNF is that a program should terminate with an error if it
       can not fulfill the CLI command in its entirety.

PROMOTING PACKAGE TO INSTALL TO A PACKAGE THAT OBSOLETES IT

       DNF will not magically replace a request for installing package X to installing package  Y
       if Y obsoletes X. YUM does this if its obsoletes config option is enabled but the behavior
       is not properly documented and can be harmful.

       See the related Fedora bug 1096506 and guidelines for renaming and obsoleting packages  in
       Fedora.

BEHAVIOR OF --INSTALLROOT OPTION

       DNF offers more predictable behavior of installroot. DNF handles the path differently from
       the --config command-line option, where this path is always related  to  the  host  system
       (YUM  combines this path with installroot). Reposdir is also handled slightly differently,
       if one path of the reposdirs exists inside of installroot, then repos are  strictly  taken
       from installroot (YUM tests each path from reposdir separately and use installroot path if
       existed). See the detailed description for --installroot option.

DIFFERENT PROMPT AFTER TRANSACTION TABLE

       DNF doesn't provide download functionality after displaying  transaction  table.  It  only
       asks user whether to continue with transaction or not.  If one wants to download packages,
       they can use the 'download' command.

LIST COMMAND SHOWS ALL REPO ALTERNATIVES

       DNF lists all packages from all repos, which means there can be duplicates  package  names
       (with different repo name). This is due to providing users possibility to choose preferred
       repo.

YUM-LANGPACKS SUBCOMMANDS HAVE BEEN REMOVED

       Translations became part of core DNF and it is no longer necessary  to  manage  individual
       language packs.

       Following sub-commands were removed:

       • langavailable

       • langinstall

       • langremove

       • langlist

       • langinfo

    ┌────────────────────────────────────┬──────────────────────────┬────────────────────────────────┐
    │Original YUM tool                   │ DNF command/option       │ Package                        │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum checkdnf            repoquerydnf                            │
    │                                    │ --unsatisfied            │                                │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-langpacks                       │                          │ dnf                            │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-aliasesdnf aliasdnf                            │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-auto-update-debug-info   │ option                in │ dnf-plugins-core               │
    │                                    │ debuginfo-install.conf   │                                │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-changelog                │                          │ dnf-plugins-core               │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-coprdnf coprdnf-plugins-core               │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-fastestmirrorfastestmirror option  in │ dnf                            │
    │                                    │ dnf.conf                 │                                │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-fs-snapshot              │                          │ dnf-plugins-extras-snapper     │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-local                    │                          │ dnf-plugins-core               │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-merge-conf               │                          │ dnf-plugins-extras-rpmconf     │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-post-transaction-actions │                          │ dnf-plugins-core               │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-prioritiespriority    option    in │ dnf                            │
    │                                    │ dnf.conf                 │                                │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-remove-with-leavesdnf autoremovednf                            │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-show-leaves              │                          │ dnf-plugins-core               │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-tmprepo--repofrompath option    │ dnf                            │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-tsflagstsflags     option    in │ dnf                            │
    │                                    │ dnf.conf                 │                                │
    ├────────────────────────────────────┼──────────────────────────┼────────────────────────────────┤
    │yum-plugin-versionlock              │                          │ python3-dnf-plugin-versionlock │
    └────────────────────────────────────┴──────────────────────────┴────────────────────────────────┘

    │yum-rhn-plugin                      │                          │ dnf-plugin-spacewalk           │
    └────────────────────────────────────┴──────────────────────────┴────────────────────────────────┘

       Plugins that have not been ported yet:

       yum-plugin-filter-data,  yum-plugin-keys,  yum-plugin-list-data,   yum-plugin-protectbase,
       yum-plugin-ps,            yum-plugin-puppetverify,            yum-plugin-refresh-updatesd,
       yum-plugin-rpm-warm-cache, yum-plugin-upgrade-helper, yum-plugin-verify

       Feel free to file an RFE for missing functionality if you need it.

       All ported YUM tools are now implemented as DNF plugins.

          ┌──────────────────────┬──────────────────────────┬────────────────────────────────┐
          │Original YUM tool     │ New DNF command          │ Package                        │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │debuginfo-installdnf debuginfo-installdnf-plugins-core               │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │find-repos-of-installdnf list installeddnf                            │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │needs-restartingdnf tracerdnf-plugins-extras-tracer      │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │package-cleanupdnf list, dnf repoquerydnf, dnf-plugins-core          │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │repoclosurednf repoclosurednf-plugins-extras-repoclosure │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │repodiffdnf repodiffdnf-plugins-core               │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │repo-graphdnf repographdnf-plugins-extras-repograph   │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │repomanagednf repomanagednf-plugins-extras-repomanage  │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │repoquerydnf repoquerydnf                            │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │reposyncdnf reposyncdnf-plugins-core               │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │repotrackdnf  download  --resolve │ dnf-plugins-core               │
          │                      │ --alldeps                │                                │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │yum-builddepdnf builddepdnf-plugins-core               │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │yum-config-managerdnf config-managerdnf-plugins-core               │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │yum-debug-dumpdnf debug-dumpdnf-plugins-extras-debug       │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │yum-debug-restorednf debug-restorednf-plugins-extras-debug       │
          ├──────────────────────┼──────────────────────────┼────────────────────────────────┤
          │yumdownloaderdnf downloaddnf-plugins-core               │
          └──────────────────────┴──────────────────────────┴────────────────────────────────┘

       Detailed table for package-cleanup replacement:

                 ┌─────────────────────────────────┬──────────────────────────────────┐
                 │package-cleanup --dupesdnf repoquery --duplicates       │
                 ├─────────────────────────────────┼──────────────────────────────────┤
                 │package-cleanup --leavesdnf repoquery --unneeded         │
                 ├─────────────────────────────────┼──────────────────────────────────┤
                 │package-cleanup --orphansdnf repoquery --extras           │
                 ├─────────────────────────────────┼──────────────────────────────────┤
                 │package-cleanup --problemsdnf repoquery --unsatisfied      │
                 ├─────────────────────────────────┼──────────────────────────────────┤
                 │package-cleanup --cleandupesdnf remove --duplicates          │
                 ├─────────────────────────────────┼──────────────────────────────────┤
                 │package-cleanup --oldkernelsdnf remove --oldinstallonly      │
                 └─────────────────────────────────┴──────────────────────────────────┘

                 │package-cleanup     --oldkernelsdnf   remove   $(dnf   repoquery │
                 │--keep=2--installonly --latest-limit=-2) │
                 └─────────────────────────────────┴──────────────────────────────────┘

YUM-UPDATEONBOOT AND YUM-CRON

       DNF  does  not  have  a  direct  replacement  of  yum-updateonboot  and yum-cron commands.
       However, the similar result can be achieved by dnf automatic command (see DNF Automatic).

       You can either use the shortcut:

          $ systemctl enable --now dnf-automatic-install.timer

       Or set apply_updates option of /etc/dnf/automatic.conf to True and use generic timer unit:

          $ systemctl enable --now dnf-automatic.timer

       The timer in both cases is activated 1 hour after  the  system  was  booted  up  and  then
       repetitively  once  every  24 hours. There is also a random delay on these timers set to 5
       minutes. These values can be tweaked via dnf-automatic*.timer config files located in  the
       /usr/lib/systemd/system/ directory.

UTILITIES THAT HAVE NOT BEEN PORTED YET

       repo-rss, show-changed-rco, show-installed, verifytree, yum-groups-manager

       Take  a  look  at the FAQ about YUM to DNF migration. Feel free to file an RFE for missing
       functionality if you need it.

AUTHOR

       See AUTHORS in DNF source distribution.

COPYRIGHT

       2012-2023, Red Hat, Licensed under GPLv2+