How to Manage Packages in Debian/Ubuntu Linux Systems Using apt-get and dpkg Commands
In this post, we’ll show you how to manage packages in Debian/Ubuntu Linux systems. Being able to install, remove, update, etc.. packages in Debian Linux systems is very important task for everyone “users and administrators” which increase your OS performance and removes security threads. Debian and Ubuntu Linux provides a number of package management tools. This article summaries package management command along with it usage and examples for you.
- apt-get : APT is acronym for Advanced Package Tool. It supports installing packages over internet using ftp or http protocols. You can also upgrade all packages in a single operations, which makes it even more attractive.
- dpkg : Debian packaging tool which can be use to install, query, uninstall packages.
Gui tools: You can also try GUI based or high level interface to the Debian GNU/Linux package system. Following list summaries them:
- aptitude: It is a text-based interface to the Debian GNU/Linux package system.
- synaptic: GUI front end for APT
Red hat Linux package names generally end in .rpm, similarly Debian package names end in .deb, for example:
apache_1.3.31-6_i386.deb
Where,
- apache : Package name
- 1.3.31-6 : Version number
- i386 : Hardware Platform on which this package will run (i386 == intel x86 based system)
- .deb : Extension that suggest it is a Debian package
Remember, whenever I refer .deb file it signifies complete file name, and whenever I refer package name it must be first part of .deb file. For example, when I refer to a package sudo it means sudo only and not the .deb file i.e. sudo_1.6.7p5-2_i386.deb. You can find out Debian package name with the following command:
apt-cache search {package-name} apt-cache search apache
Finally, most of the actions listed in this post are written with the assumption that they will be executed by the root user running the bash or any other modern shell.
Part 1: Using apt-get Command for Package Management
This is our first tool, we use for package management on Debian/Ubuntu Linux systems.
apt-get add a new package
Add a new package called samba. The syntax is:
apt-get install {package-name}
To install a package called samba, run:
# apt-get install samba
apt-get remove the package called samba but keep the configuration files
The syntax is:
apt-get remove {package-name}
Example:
# apt-get remove samba
apt-get remove (erase) package and configuration file
The syntax is:
apt-get --purge remove {package-name}
Example:
# apt-get --purge remove samba
apt-get update (upgrade) package
The syntax is:
apt-get upgrade
To upgrade individual package called sudo, enter:
# apt-get install sudo
apt-get display available software updates
Following command will display the list of all available upgrades (updates) using -u option, if you decided to upgrade all of the shown packages just hit ‘y’
# apt-get upgrade samba
However if you just wish to upgrade individual package then use apt-get command and it will take care of rest of your worries:
apt-get install {package-name}
Part 2: Using dpkg Command for Package Management
This is our second tool, we use for package management on Debian/Ubuntu Linux systems.
dpkg command to get package information such as description of package, version etc.
The syntax is:
dpkg --info {.deb-package-name}
Example:
# dpkg --info sudo_1.6.7p5-2_i386.deb | less
List all installed packages
The syntax is:
dpkg -l
Example:
# dpkg -l
To list individual package try such as apache
# dpkg -l apache
You can also use this command to see (verify) if package sudo is install or not (note that if package is installed then it displays package name along with small description):
# dpkg -l | grep -i 'sudo'
To list packages related to the apache:
# dpkg -l '*apache*'
List files provided (or owned) by the installed package (for example what files are provided by the installed samba package). The syntax is:
dpkg -L {package-name}
Example:
# dpkg -L samba
(H) List files provided (or owned) by the package (for example what files are provided by the uninstalled sudo package). The syntax is:
dpkg --contents {.deb-package-name}
Example:
# dpkg --contents sudo_1.6.7p5-2_i386.deb
Find, what package owns the file /bin/netstat?
The syntax is:
dpkg -S {/path/to/file}
Example:
# dpkg -S /bin/netstat
Search for package or package description
Some times you don’t know package name but aware of some keywords to search the package. Once you got package name you can install it using apt-get -i {package-name} command:
apt-cache search "Text-to-search" apt-cache search "httpd" apt-cache search "web server" apt-cache search "web server"| grep something
Find out all the Debian package which can be used for Intrusion Detection
Type the following command:
# apt-cache search "Intrusion Detection"
Find out all sniffer packages, run:
# apt-cache search sniffer
Find out if Debian package is installed or not (status)
The syntax is:
dpkg -s {package-name} | grep Status
Example:
# dpkg -s samba| grep Status
List each dependency a package has…
Display a listing of each dependency a package has and all the possible other packages that can fulfill that dependency. You hardly use this command as apt-get does decent job fulfill all package dependencies. The syntax is:
apt-cache depends package
Display dependencies for lsof and mysql-server packages:
# apt-cache depends lsof # apt-cache depends mysql-server
If You Appreciate What We Do Here On Mimastech, You Should Consider:
- Stay Connected to: Facebook | Twitter | Google+
- Support us via PayPal Donation
- Subscribe to our email newsletters.
- Tell other sysadmins / friends about Us - Share and Like our posts and services
We are thankful for your never ending support.