How To Install nodepool on Fedora 34

nodepool is Nodepool management for a distributed test infrastructure

Introduction

In this tutorial we learn how to install nodepool on Fedora 34.

What is nodepool

Nodepool is a service used by the OpenStack CI team to deploy and manage a pool of devstack images on a cloud server for use in OpenStack project testing.

We can use yum or dnf to install nodepool on Fedora 34. In this tutorial we discuss both methods but you only need to choose one of method to install nodepool.

Install nodepool on Fedora 34 Using dnf

Update yum database with dnf using the following command.

sudo dnf makecache --refresh

The output should look something like this:

Fedora 34 - x86_64                               20 kB/s | 6.6 kB     00:00
Fedora 34 openh264 (From Cisco) - x86_64        1.4 kB/s | 989  B     00:00
Fedora Modular 34 - x86_64                       68 kB/s | 6.5 kB     00:00
Fedora 34 - x86_64 - Updates                    3.5 kB/s | 6.2 kB     00:01
Fedora Modular 34 - x86_64 - Updates             17 kB/s | 5.9 kB     00:00
Metadata cache created.

After updating yum database, We can install nodepool using dnf by running the following command:

sudo dnf -y install nodepool

Install nodepool on Fedora 34 Using yum

Update yum database with yum using the following command.

sudo yum makecache --refresh

The output should look something like this:

Fedora 34 - x86_64                               20 kB/s | 6.6 kB     00:00
Fedora 34 openh264 (From Cisco) - x86_64        1.4 kB/s | 989  B     00:00
Fedora Modular 34 - x86_64                       68 kB/s | 6.5 kB     00:00
Fedora 34 - x86_64 - Updates                    3.5 kB/s | 6.2 kB     00:01
Fedora Modular 34 - x86_64 - Updates             17 kB/s | 5.9 kB     00:00
Metadata cache created.

After updating yum database, We can install nodepool using yum by running the following command:

sudo yum -y install nodepool

How To Uninstall nodepool on Fedora 34

To uninstall only the nodepool package we can use the following command:

sudo dnf remove nodepool

nodepool Package Contents on Fedora 34

/etc/nodepool/elements
/etc/nodepool/nodepool.yaml
/etc/nodepool/scripts
/etc/nodepool/secure.conf
/usr/bin/nodepool
/usr/lib/python3.9/site-packages/nodepool
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/PKG-INFO
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/SOURCES.txt
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/dependency_links.txt
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/entry_points.txt
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/not-zip-safe
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/pbr.json
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/requires.txt
/usr/lib/python3.9/site-packages/nodepool-3.13.1-py3.9.egg-info/top_level.txt
/usr/lib/python3.9/site-packages/nodepool/__init__.py
/usr/lib/python3.9/site-packages/nodepool/__pycache__
/usr/lib/python3.9/site-packages/nodepool/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/builder.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/builder.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/exceptions.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/exceptions.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/launcher.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/launcher.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/logconfig.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/logconfig.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/nodeutils.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/nodeutils.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/provider_manager.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/provider_manager.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/stats.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/stats.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/status.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/status.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/version.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/version.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/webapp.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/webapp.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/zk.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/__pycache__/zk.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/builder.py
/usr/lib/python3.9/site-packages/nodepool/cmd
/usr/lib/python3.9/site-packages/nodepool/cmd/__init__.py
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/builder.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/builder.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/config_validator.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/config_validator.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/launcher.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/launcher.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/nodepoolcmd.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/__pycache__/nodepoolcmd.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/cmd/builder.py
/usr/lib/python3.9/site-packages/nodepool/cmd/config_validator.py
/usr/lib/python3.9/site-packages/nodepool/cmd/launcher.py
/usr/lib/python3.9/site-packages/nodepool/cmd/nodepoolcmd.py
/usr/lib/python3.9/site-packages/nodepool/config.py
/usr/lib/python3.9/site-packages/nodepool/driver
/usr/lib/python3.9/site-packages/nodepool/driver/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/simple.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/simple.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/taskmanager.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/taskmanager.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/utils.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/__pycache__/utils.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/aws/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/aws/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/aws/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/azure
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/azure/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/azure/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/azure/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/fake
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/fake/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/fake/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/fake/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/gce
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__pycache__/adapter.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__pycache__/adapter.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/gce/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/gce/adapter.py
/usr/lib/python3.9/site-packages/nodepool/driver/gce/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/kubernetes/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshift
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshift/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/openshiftpods/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/openstack
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/openstack/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/simple.py
/usr/lib/python3.9/site-packages/nodepool/driver/static
/usr/lib/python3.9/site-packages/nodepool/driver/static/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/static/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/static/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/static/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/taskmanager.py
/usr/lib/python3.9/site-packages/nodepool/driver/test
/usr/lib/python3.9/site-packages/nodepool/driver/test/__init__.py
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/config.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/config.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/handler.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/handler.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/provider.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/__pycache__/provider.cpython-39.pyc
/usr/lib/python3.9/site-packages/nodepool/driver/test/config.py
/usr/lib/python3.9/site-packages/nodepool/driver/test/handler.py
/usr/lib/python3.9/site-packages/nodepool/driver/test/provider.py
/usr/lib/python3.9/site-packages/nodepool/driver/utils.py
/usr/lib/python3.9/site-packages/nodepool/exceptions.py
/usr/lib/python3.9/site-packages/nodepool/launcher.py
/usr/lib/python3.9/site-packages/nodepool/logconfig.py
/usr/lib/python3.9/site-packages/nodepool/nodeutils.py
/usr/lib/python3.9/site-packages/nodepool/provider_manager.py
/usr/lib/python3.9/site-packages/nodepool/releasenotes
/usr/lib/python3.9/site-packages/nodepool/releasenotes/notes
/usr/lib/python3.9/site-packages/nodepool/releasenotes/notes/filter-active-images-openstack-f69bf47323b6b91a.yaml
/usr/lib/python3.9/site-packages/nodepool/stats.py
/usr/lib/python3.9/site-packages/nodepool/status.py
/usr/lib/python3.9/site-packages/nodepool/version.py
/usr/lib/python3.9/site-packages/nodepool/webapp.py
/usr/lib/python3.9/site-packages/nodepool/zk.py
/var/lib/nodepool
/var/lib/nodepool/.config
/var/lib/nodepool/.config/openstack
/var/lib/nodepool/dib
/var/log/nodepool

References

Summary

In this tutorial we learn how to install nodepool on Fedora 34 using yum and dnf.