Home > Cheatsheets > Package management cheatsheet

Package management cheatsheet

packages_list
In the servers world, software packages came in a variety of formats and could be installed in different ways. This cheat-sheet collects day by day operations with software performed by typical System Administrator on servers what runs Linux and BSD.

Basic operations

Inludes install, upgrade, and removal options.

Install

RPM based
rpm -ivh package-name.rpm
yum install package-name
zypper install package-name
DEB based
dpkg -i package-name.deb
apt-get install package-name
aptitude install package-name
Gentoo based
emerge -av ebuild
FreeBSD based
cd /usr/ports/package-name && make install clean
pkg_add -r package-name

Update

RPM based
rpm -Uvh package-name.rpm
yum update package-name
zypper up package-name
DEB based
apt-get install package-name
aptitude install package-name
Gentoo based
emerge -uDv package-name
FreeBSD based
portmanager port-name -l -u -f

Remove

RPM based
rpm -e package-name.rpm
yum remove package-name
zypper remove package-name
DEB based
dpkg -r package-name.deb
apt-get remove package-name
aptitude remove package-name
Gentoo based
emerge -Cav ebuild
FreeBSD based
pkg_delete package-name-version

Search for a package

RPM based
yum search keyword
zypper se keyword
DEB based
apt-cache search keyword
dpkg -C
Gentoo based
emerge -s keyword
emerge -S keyword
FreeBSD based
whereis package-name
cd /usr/ports; make search name=package-name
find /usr/ports -name package-name
pkg_info -W package-name

List contents of package

RPM based
rpm -qvl package-name.rpm
DEB based
dpkg -c package-name.deb
Gentoo based
qlist package-name.deb
FreeBSD based
pkg_info -L package_name

List all installed packages

RPM based
rpm -qvia
yum list available
DEB based
dpkg -l
Gentoo based
qpkg -I
FreeBSD based
pkg_info
pkg_info -a

Print information about a package

RPM based
rpm -qpi package-name.rpm
zypper info package-name
DEB based
dpkg -I package-name.deb
dpkg -p package-name
Gentoo based
emerge -pv ebuild
FreeBSD based
pkg_info | grep package-name

Integrity check

RPM based
rpm -Va
rpm -Vp package-name.rpm
DEB based
debsums -a
Gentoo based
qcheck package_name

Determine to which package a file belongs

RPM based
rpm -qf /path/to/file
DEB based
dpkg -S /path/to/file
Gentoo based
qpkg -f /path/to/file
qfile /path/to/file
FreeBSD based
pkg_info -W /path/to/file

Update packages tree

RPM based
yum check-update
DEB based
apt-get update
aptitude update
Gentoo based
emerge --sync
FreeBSD based
cvsup ports-supfile
portsnap fetch extract

Update all installed packages and userland

RPM based
yum update
DEB based
apt-get update && apt-get upgrade
Gentoo based
emerge -eav world
FreeBSD based
portmaster -ai
portmanager -u
portupgrade -a
freebsd-update upgrade

List outdated packages

RPM based
yum list updates
DEB based
apt-get upgrade --just-print
apt-get upgrade -u
apt-show-versions -u
Gentoo based
emerge -eapv world
FreeBSD based
pkg_version -vIL=

Show package dependencies

RPM based
rpm -qpR package-name.rpm
yum deplist package-name
DEB based
apt-cache depends package-name
apt-rdepends -d package-name
Gentoo based
emerge -tp ebuild
equery depends ebuild
FreeBSD based
pkg_info -L package_name

Cheatsheets

  1. #1

    Props on the article!

    Nice OS taste, it was very pleasing to see some of my favourites OS in the article: FreeBSD, Gentoo and Debian.

    Notice a little snag on the "Update packages tree" section for FreeBSD. "portupgrade -a" and "freebsd-update fetch" don't update the package tree.

    Portupgrade like the name implies, updates your installed ports according to the ports tree on you computer (regardless if that tree is up to date with FreeBSD servers).

    freebsd-update updates the the kernel and userland, it doesn't touch anything regarding ports and third party applications.

    Personally to update my third party applications after syncing my ports tree I use portmaster with the -aD flag.

    Keep the good stuff coming ;)

  2. #2

    Thanks for the notes. Post updated

  3. Hakan
    #3

    I am missing Opensuse with the command line tool zypper.

  4. #4

    Thanks for the note, I'll update the cheat-sheet soon

  1. No trackbacks yet.