If you’re managing Debian or Ubuntu servers, probably, you may use dpkg or apt-get commands often. These two commands are used to install, remove, update packages.
In this brief tutorial, let us see how to check if a package is installed or not in DEB based systems.
To check whether a particular package for example firefox, is installed or not using command:
dpkg -s firefox
Sample output:
Package: firefox Status: install ok installed Priority: optional Section: web Installed-Size: 93339 Maintainer: Ubuntu Mozilla Team <[email protected]> Architecture: amd64 Version: 35.0+build3-0ubuntu0.14.04.2 Replaces: kubuntu-firefox-installer Provides: gnome-www-browser, iceweasel, www-browser Depends: lsb-release, libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.17), libcairo2 (>= 1.2.4), libdbus-1-3 (>= 1.0.2), libdbus-glib-1-2 (>= 0.78), libfontconfig1 (>= 2.9.0), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.37.3), libgtk2.0-0 (>= 2.24.0), libpango-1.0-0 (>= 1.22.0), libpangocairo-1.0-0 (>= 1.14.0), libstartup-notification0 (>= 0.8), libstdc++6 (>= 4.6), libx11-6, libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxrender1, libxt6 Recommends: xul-ext-ubufox, libcanberra0, libdbusmenu-glib4, libdbusmenu-gtk4 Suggests: ttf-lyx Conffiles: /etc/firefox/syspref.js 09e457e65435a1a043521f2bd19cd2a1 /etc/apport/blacklist.d/firefox ee63264f847e671832d42255912ce144 /etc/apport/native-origins.d/firefox 7c26b75c7c2b715c89cc6d85338252a4 /etc/apparmor.d/usr.bin.firefox f54f7a43361c7ecfa3874abca2f292cf Description: Safe and easy web browser from Mozilla Firefox delivers safe, easy web browsing. A familiar user interface, enhanced security features including protection from online identity theft, and integrated search let you get the most out of the web. Xul-Appid: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
As you see in the above output, the firefox is installed.
Also, you can do the same using dpkg-query command. This command displays the decent output, and ofcourse, you can wild cards too.
<span class="pln">dpkg</span><span class="pun">-</span><span class="pln">query </span><span class="pun">-</span><span class="pln">l </span><span class="pun">firefox</span>
Sample output:
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name                                Version                Architecture           Description +++-====================================-=======================-=======================-============================================================================= ii firefox                             35.0+build3-0ubuntu0.14 amd64                  Safe and easy web browser from Mozilla
To list all installed package in your system, enter the following command
dpkg --get-selections
Sample output:
abiword                  install abiword-common               install accountsservice               install acl                  install adduser                  install alsa-base               install alsa-utils               install anacron                  install app-install-data            install apparmor               install . . . zeitgeist               install zeitgeist-core               install zeitgeist-datahub            install zenity                  install zenity-common               install zip                  install zlib1g:amd64               install zlib1g:i386               install
The above might be very long depending upon the number of packages you have installed on your system.
You can also filter through grep to get results for the exact package you need. For example, I want to see which gcc packages are already installed on my system using dpkg command:
dpkg --get-selections | grep gcc
Sample output:
gcc                  install gcc-4.8                  install gcc-4.8-base:amd64            install gcc-4.8-base:i386            install gcc-4.9-base:amd64            install gcc-4.9-base:i386            install libgcc-4.8-dev:amd64            install libgcc1:amd64               install libgcc1:i386               install
Additionally, you can find location of the files within a package using the parameter “-L”.
dpkg -L gcc-4.8
Sample output:
/. /usr /usr/share /usr/share/doc /usr/share/doc/gcc-4.8-base /usr/share/doc/gcc-4.8-base/README.Bugs /usr/share/doc/gcc-4.8-base/NEWS.html /usr/share/doc/gcc-4.8-base/quadmath /usr/share/doc/gcc-4.8-base/quadmath/changelog.gz /usr/share/doc/gcc-4.8-base/gcc . . . /usr/bin/x86_64-linux-gnu-gcc-4.8 /usr/bin/x86_64-linux-gnu-gcc-ar-4.8 /usr/bin/x86_64-linux-gnu-gcov-4.8
That’s all for now. Hope this short tutorial will useful for you.
Good day!