Many of the following rpm
commands use rpm -q <package>
to query against an installed package by
name. You can also query a possibly-uninstalled .rpm
file with rpm -qp path/to/package.rpm
.
# dnf/rpm
dnf repoquery --installed --requires <package>
rpm --requires -q <package>
You can replace --requires
with --provides
and --conflicts
for more information.
# apt/deb
apt-cache depends <package>
# dnf/rpm
dnf repoquery --installed --whatrequires <package>
rpm --whatrequires -q <package>
# apt/deb
apt-cache rdepends --installed <package>
# dnf/rpm
rpm -qf <path/to/file>
# apt/deb
dpkg -S <path/to/file>
rpm -q <package> --scripts
# From a given .deb package
dpkg --dry-run -i <package.deb>
# From an installed .deb package
ls /var/lib/dpkg/info/<package>*
rpm -ql <package>
rpm -qpl <package.rpm>
dpkg -L <package>
dpkg --contents <package.deb>
cat /var/lib/dpkg/info/<package>.list
It's often super useful to extract the contents of a package to a temporary prefix without installing the package.
# For an .rpm
sudo apt install rpm2cpio
mkdir prefix/
cd prefix/
rpm2cpio <package.rpm> | cpio -idmv
cd ../
tree prefix/
# For a .deb
dpkg --contents <package.deb>
dpkg-deb -x <package.deb> prefix/
rpm -qa
dnf list --installed
apt list --installed
dnf remove <package>
apt remove <package>
rpm --nodeps -e <package>
rpm -i <package.rpm>
rpm --force -i <package.rpm>
# Needs ./ prefix to look for the given package file, instead of treating as a package name
dnf install --nogpgcheck ./package.rpm
apt install ./package.deb