The --skip-broken command line switch is not recognized by DNF. The semantics this was supposed to trigger in Yum is now the default for plain dnf update. There is no equivalent for yum --skip-broken update foo, as silentnly skipping foo in this case only amounts to masking an error contradicting the user request. To try using the latest versions of packages in transactions there is the --best command line switch.
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.
The clean_requirements_on_remove switch is on by default in DNF. It can thus be confusing to compare the “erase” operation results between DNF and Yum as by default DNF is often going to remove more packages.
The Yum version of this command is maintained for legacy reasons only. The user can just do dnf provides to find out what package gives a particular provide.
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*'
DNF drops Yum’s protected_packages configuration option. Generally, DNF lets the user do what she specified, even have DNF itself removed. Similar functionality can be implemented by a plugin.
In Yum, the running kernel is spared. There is no reason to keep this in DNF, the user can always specify concrete versions on the command line, e.g.:
dnf erase kernel-3.9.4
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 false sense that this works while in fact provides requests using globs such as:
dnf provides /b*/<file>
will fail still (as it does in Yum now). To find what provides a particular binary use the actual path for binaries on Fedora:
dnf provides /usr/bin/<file>
This config option has been dropped. When DNF sees several groups with the same group id it merges the groups’ contents together.
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).
Done to simplify the configuration. User will typically want to decide what packages to install per-group and not via a global setting.
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 tolerates the use of other package managers. Then it is possible that not all changes to 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.
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 erase and the install in one transaction. The common way to setup such transaction in Yum is to use yum shell.
There is no shell in DNF but the case above is still valid. We provide the --allowerasing switch for this purpose, 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
The option was used to keep the downloaded .rpm of just installed pacakges in the cache. It has been disabled in Fedora and there has been no real use cases indicated. The option has been removed in DNF which deletes all downloaded packages after a transaction completes.
Note that this option is something different than the “downloadonly” functionality in Yum.