How to Check vendor of installed RPM packages in Linux

This is a quick how-to post on checking the vendor of the installed rpms on a system. In some scenarios, a custom rpm package may not be compatible or supported on the specific system or environment. This post will help you identify the vendor of rpm which are either thrid party or not native to the OS provider.

List vendor information of RPMs

To List all the rpm with the vendor infromation, use the –queryformat(–qf) option.

# rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH} %{VENDOR}\n'

Example output:

[root@geeklab ~]# rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH} %{VENDOR}\n'
python3-pyparted-3.11.0-13.el8.x86_64 CentOS
python3-gobject-base-3.28.3-1.el8.x86_64 CentOS
libvirt-daemon-driver-secret-4.5.0-42.module_el8.2.0+320+13f867d7.x86_64 CentOS
gnome-screenshot-3.26.0-3.el8.x86_64 CentOS
fontpackages-filesystem-1.44-22.el8.noarch CentOS
libevdev-1.8.0-1.el8.x86_64 CentOS
cronie-1.5.2-4.el8.x86_64 CentOS
lua-json-1.3.2-9.el8.noarch CentOS
mesa-libglapi-19.3.4-2.el8.x86_64 CentOS
baobab-3.28.0-4.el8.x86_64 CentOS
xkeyboard-config-2.28-1.el8.noarch CentOS
...

List 3rd Party or non-native Packages

To list all package which are not provided by CentOS, run the following command:

# rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} %{VENDOR}\n" | awk '{if($2!="CentOS") print$0;}'

Example output from a CentOS 8 server:

[root@geeklab ~]# rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} %{VENDOR}\n" | awk '{if($2!="CentOS") print$0;}'
gpg-pubkey-8483c65d-5ccc5b19-(none) (none)
amazon-ssm-agent-2.3.1644.0-1-x86_64 Amazon.com
gpg-pubkey-6963f07f-57fad2ec-(none) (none)

More info

If you want to learn more of the specific rpm package, it could be help by checking the package info:

1. query the installed rpm

# rpm -qi [rpm_name]

For example:

# rpm -qi tree
Name        : tree
Version     : 1.7.0
Release     : 15.el8
Architecture: x86_64
Install Date: Thu 27 Aug 2020 05:24:23 PM UTC
Group       : Unspecified
Size        : 111603
License     : GPLv2+
Signature   : RSA/SHA256, Tue 02 Jul 2019 01:53:45 AM UTC, Key ID 05b555b38483c65d
Source RPM  : tree-1.7.0-15.el8.src.rpm
Build Date  : Sat 11 May 2019 03:54:52 PM UTC
Build Host  : x86-01.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys 
Vendor      : CentOS
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.

2. query a package which exist on the specified location:

# rpm -qpi [rpm_with_absolute_path]

For example:

# rpm -qpi /tmp/telnet-0.17-73.el8_1.1.x86_64.rpm
Name        : telnet
Epoch       : 1
Version     : 0.17
Release     : 73.el8_1.1
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Internet
Size        : 156776
License     : BSD
Signature   : RSA/SHA256, Mon 13 Apr 2020 06:13:23 PM UTC, Key ID 05b555b38483c65d
Source RPM  : telnet-0.17-73.el8_1.1.src.rpm
Build Date  : Mon 13 Apr 2020 05:58:20 PM UTC
Build Host  : x86-01.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys 
Vendor      : CentOS
URL         : example.com
Summary     : The client program for the Telnet remote login protocol
Description :
Telnet is a popular protocol for logging into remote systems over the
Internet. The package provides a command line Telnet client
Related Post