YUM Will Be Replaced With DNF On Fedora 22 And Later Versions

by
Share this Article: Facebook444Google+0Twitter38LinkedIn2Reddit27StumbleUpon22

As you may know, DNF is the replacement of popular package manager YUM of Fedora and other RPM based distros. DNF was forked from YUM in January 2012, and available for experimenting since Fedora 18. According to the Fedora development team,  DNF is now fully matured and capable of replacing YUM, and it will be the default package manager in Fedora 22 and newer versions.

DNF is the next upcoming major version of YUM. It does package management using RPM, libsolv and hawkey libraries. For metadata handling and package downloads it utilizes librepo. To process and effectively handle the comps data it uses libcomps.

Install DNF

DNF and all its dependencies are available in Fedora 18 and later, including the rawhide Fedora.

If you want to test DNF on your Fedora systems, run the following command from your Terminal.

sudo yum install dnf

Note: You don’t have to install it on Fedora 22, because it comes reinstalled with Fedora 22 and newer versions.

Usage

Synopsis:

dnf [options] <command> [<args>...]

DNF usage is very similar to YUM.

For example, to install a new package using YUM, we use the following command:

sudo yum install <package-name>

Similar to YUM, we can install package using DNF as shown below.

To install a package using DNF:

sudo dnf install <package-name>

To remove a package:

sudo dnf remove <package-name>

To update the system:

sudo dnf update

To upgrade the system:

sudo dnf upgrade

Complete list of DNF Commands

Available commands are:

check-update
clean
dist-sync
distribution-sync
downgrade
erase
group
help
history
info
install
list
makecache
provides
reinstall
repolist
search
update
update-to
upgrade
upgrade-to

Options

Just like YUM, we can use options to perform a particular action while using DNF commands.

The list of available options are:

--assumeno
     answer no for all questions
--best
     Try the best available package versions in transactions.
-C, --cacheonly
     Run entirely from system cache, don’t update cache
-c <config file>, --config=<config file>
     config file location
-d <debug level>, --debuglevel=<debug level>
     Debugging output level.
--disableexcludes=[all|main|<repoid>]
     Disable the config file excludes. Takes one of three options:
          - all, disables all config file excludes
          - main, disables excludes defined in the [main] section
          - repoid, disables excludes defined for the given repo
-e <error level>, --errorlevel=<error level>
     Error output level.
-x <package-spec>, --exclude=<package-spec>
     Exclude packages specified by a name or a glob from the operation.
-h, --help
     Shows the help.
--installroot=<path>
     set install root
--nogpgcheck
     skip checking GPG signatures on packages
-q, --quiet
     quiet operation
-R <minutes>, --randomwait=<minutes>
     maximum command wait time
--releasever=<release>
     configure DNF as if the distribution release was <release>.
--rpmverbosity=<debug level name>
     debugging output level for rpm
--showduplicates
     show duplicates, in repos, in list/search commands
-v, --verbose
     verbose operation, show debug messages.
--version
     show Yum version and exit
-y, --assumeyes
     answer yes for all questions

To see the reference for each command, please visit here.

DNF Configuration

By default, DNF uses the global configuration file at /etc/dnf/dnf.conf and all *.repo files found under /etc/yum.repos.d directory.

The contents of dnf.conf file:

sudo nano /etc/dnf/dnf.conf
[main]
keepcache=0
gpgcheck=1
plugins=0
installonly_limit=3
clean_requirements_on_remove=true

There are two types of sections in the configuration files: main and repository.

The main section defines all global configuration options. There should be only one main section.

The repository sections define the configuration for each (remote or local) repository.

For more details about DNF Configuration, please refer here.

DNF in Action On my Fedora desktop:

Let me install a package (ex.httpd) using DNF to view how it looks in action.

root@localhost:~_002As you see in the above picture, there is nothing change and difficult to install a package using DNF. We replaced the word “yum” with “dnf”. The remaining parts exactly same as the way we use in YUM.

Among popular package managers such as APT-GET, YUM and ZYPPER, DNF is very new to the show. Let us wait and see how DNF will perform over YUM and other package managers in near future.

References: DNF Documentation

For questions please refer to our Q/A forum at : http://ask.unixmen.com/

Share this Article: Facebook444Google+0Twitter38LinkedIn2Reddit27StumbleUpon22