Occasionally, you may want to check the packages installed on your system. In this tutorial, I will demonstrate how list installed packages on Fedora. Yum package manager was used on Fedora 22 and its previous version, now (Fedora 27) we have dnf tool for package management.
1) List manually (explicitly) installed packages
To list manually installed packages in your system, run the following command
dnf history userinstalled
Sample Output
Packages installed by user httpd gnome-tweak-tool nodejs npm
2) List all installed packages
On older version say Fedora 22, if you wish to know all the installed packages in your system, run the command below
rpm -qa
Sample Output
1 hwdata-0.252-8.6.el7.x86_64 2 setup-2.8.71-7.el7.noarch 3 libpipeline-1.2.3-3.el7.x86_64 4 grub2-pc-modules-2.02-0.65.el7_4.2.noarch 5 gpgme-1.3.2-5.el7.x86_64 6 glibc-common-2.17-196.el7.x86_64 7 yum-3.4.3-154.el7.noarch 8 libstdc++-4.8.5-16.el7_4.1.x86_64 9 rhn-check-2.0.2-17.el7.noarch 10 pcre-8.32-17.el7.x86_64 11 xz-libs-5.2.2-1.el7.x86_64 12 desktop-file-utils-0.23-1.el7.x86_64 13 libxml2-2.9.1-6.el7_2.3.x86_64
NOTE: If you wish to know whether a specific package is installed, use the 'grep' filter option
In this example, we'll investigate whether httpd web server is installed or not.
rpm -qa | grep httpd
Output
httpd-tools-2.4.6-67.el7_4.6.x86_64 httpd-2.4.6-67.el7_4.6.x86_64
The results above confirm the installation and presence of httpd web server.
You can also sort the packages installed according to date i.e from latest to earliest. This can be achieved by running the command below
rpm -qa --last
Sample Output
vim-enhanced-7.4.160-2.el7.x86_64 Thu 22 Feb 2018 07:53:52 PM UTC vim-common-7.4.160-2.el7.x86_64 Thu 22 Feb 2018 07:53:52 PM UTC vim-filesystem-7.4.160-2.el7.x86_64 Thu 22 Feb 2018 07:53:50 PM UTC gpm-libs-1.20.7-5.el7.x86_64 Thu 22 Feb 2018 07:53:50 PM UTC samba-common-tools-4.6.2-12.el7_4.x86_64 Sun 18 Feb 2018 03:20:55 PM UTC samba-4.6.2-12.el7_4.x86_64 Sun 18 Feb 2018 03:20:55 PM UTC samba-libs-4.6.2-12.el7_4.x86_64 Sun 18 Feb 2018 03:20:54 PM UTC samba-common-libs-4.6.2-12.el7_4.x86_64 Sun 18 Feb 2018 03:20:54 PM UTC samba-client-libs-4.6.2-12.el7_4.x86_64 Sun 18 Feb 2018 03:20:54 PM UTC libwbclient-4.6.2-12.el7_4.x86_64 Sun 18 Feb 2018 03:20:54 PM UTC cups-libs-1.6.3-29.el7.x86_64 Sun 18 Feb 2018 03:20:54 PM UTC samba-common-4.6.2-12.el7_4.noarch Sun 18 Feb 2018 03:20:53 PM UTC
3) Using DNF - List installed packages
In the newer version say Fedora 27, you can list all the installed packages in your system using the dnf package manager.
dnf list installed
Sample output
1 Installed Packages 2 GConf2.x86_64 3.2.6-11.fc21 @System 3 LibRaw.x86_64 0.16.0-4.fc21 @System 4 ModemManager.x86_64 1.4.0-1.fc21 @System 5 ModemManager-glib.x86_64 1.4.0-1.fc21 @System 6 NetworkManager.x86_64 1:0.9.10.0-13.git20140704.fc21 @System 7 NetworkManager-adsl.x86_64 1:0.9.10.0-13.git20140704.fc21 @System 8 NetworkManager-bluetooth.x86_64 1:0.9.10.0-13.git20140704.fc21 @System 9 NetworkManager-config-connectivity-fedora.x86_64 10 1:0.9.10.0-13.git20140704.fc21 @System 11 NetworkManager-glib.x86_64 1:0.9.10.0-13.git20140704.fc21 @System 12 NetworkManager-openconnect.x86_64 0.9.8.4-4.fc21 @System 13 NetworkManager-openvpn.x86_64 1:0.9.9.0-3.git20140128.fc21 @System 14 NetworkManager-openvpn-gnome.x86_64 1:0.9.9.0-3.git20140128.fc21 @System 15 NetworkManager-pptp.x86_64 1:0.9.8.2-6.fc21 @System 16 NetworkManager-pptp-gnome.x86_64 1:0.9.8.2-6.fc21 @System 17 NetworkManager-vpnc.x86_64 1:0.9.9.0-6.git20140428.fc21 @System 18 NetworkManager-vpnc-gnome.x86_64 1:0.9.9.0-6.git20140428.fc21 @System 19 NetworkManager-wifi.x86_64 1:0.9.10.0-13.git20140704.fc21 @System 20 NetworkManager-wwan.x86_64 1:0.9.10.0-13.git20140704.fc21 @System 21 PackageKit.x86_64 1.0.3-2.fc21 @System 22 PackageKit-cached-metadata.x86_64 1.0.3-2.fc21 @System 23 PackageKit-command-not-found.x86_64 1.0.3-2.fc21 @System 24 PackageKit-glib.x86_64 1.0.3-2.fc21 @System 25 PackageKit-gstreamer-plugin.x86_64 1.0.3-2.fc21 @System 26 PackageKit-gtk3-module.x86_64 1.0.3-2.fc21
NOTE: For older Fedora versions ( Version 20 and earlier ) yum package manager is used instead of dnf. Therefore, to list installed packages the command is as shown below:
yum list installed
Sample Output
mariadb.x86_64 1:5.5.56-2.el7 @rhui-REGION-rhel-server-releases mariadb-libs.x86_64 1:5.5.56-2.el7 @anaconda/7.4 mariadb-server.x86_64 1:5.5.56-2.el7 @rhui-REGION-rhel-server-releases microcode_ctl.x86_64 2:2.1-22.2.el7 @anaconda/7.4 mozjs17.x86_64 17.0.0-19.el7 @anaconda/7.4 ncurses.x86_64 5.9-14.20130511.el7_4 @anaconda/7.4 ncurses-base.noarch 5.9-14.20130511.el7_4 @anaconda/7.4 ncurses-libs.x86_64 5.9-14.20130511.el7_4 @anaconda/7.4 net-tools.x86_64 2.0-0.22.20131004git.el7 @anaconda/7.4 newt.x86_64 0.52.15-4.el7 @anaconda/7.4 newt-python.x86_64 0.52.15-4.el7 @anaconda/7.4 nspr.x86_64 4.13.1-1.0.el7_3 @anaconda/7.4 nss.x86_64 3.28.4-15.el7_4 @anaconda/7.4 nss-pem.x86_64 1.0.3-4.el7 @anaconda/7.4 nss-softokn.x86_64
4) List orphaned packages
Orphaned packages that those packages that are no longer required by the system. rpmorphan command comes in handy when you want to view those packages so that you can later uninstall them to free up disk space.
To display orphaned libraries, run
rpmorphan
Sample Output
libcanberra-gtk2 libertas-usb8388-firmware libproxy-mozjs libreoffice-emailmerge libsane-hpaio
To display orphaned packages installed in the last 2 days, run the command below
rpmorphan --all -install-time -2
To view packages installed more than 10 days ago, run
rpmorphan --all --access -time +10
Sample Output
symlinks syslinux-extlinux system-config-printer-udev tabish-eeyek-fonts tcpdump telnet thai-scalable-waree-fonts time totem-nautilus traceroute transmission-gtk tree uboot-tools unoconv usbutils vconfig vinagre vlgothic-fonts wireless-tools words wvdial
To clean up the system of these orphaned packages, use
dnf autoremove
5) Using pkcon command to search packages
pkcon short for PackageKit console is a command line tool which can be used for many purposes including installing, updating, removing and searching packages.
To search a package run
pkcon search name package-name
For example ,
pkcon search name sshd
Sample Output
Searching by name [=========================] Starting [=========================] Finished [=========================] Available apache-sshd-0.11.0-2.fc21.noarch (fedora) Apache SSHD Available apache-sshd-javadoc-0.11.0-2.fc21.noarch (fedora) API documentation for apache-sshd Available jenkins-sshd-1.6-4.fc21.noarch (fedora) Jenkins sshd module Available jenkins-sshd-javadoc-1.6-4.fc21.noarch (fedora) Javadoc for jenkins-sshd
The above shows the files making up the sshd package.
Conclusion
This tutorial we learned how to list packages in Fedora using dnf and other package tools. I invite you to try out the above examples. Your feedback is highly welcome. Thank you.
Is there a way to further limit the output to ONLY display the "top level" application which I may have installed, WITHOUT seeing any of the additional (required) dependencies or other material which the system also installed? In other words, a very human-friendly listing of application titles which would make sense to anyone. Thank you.
Hi John,
You can use filter the output by adding one or more glob expressions as arguments.