Apt is the main command line package tool for Debian and Ubuntu. It features dependency management, so if you install a package, it will also install any additional packages required to make that work. It has version management, so you can just install the package by name and it will choose a version that works with your system.
Apt also handles security updates, you should use that on a regular basis to remove known vulnerabilities from your system.
If your server has a control panel installed such as cpanel or Plesk, it is best not to run apt manually on the command line, but to use the control panel for that. Using apt on the command line could break your server in some cases. Webmin usually plays well with apt, so you can work either through Webmin or using command line apt. Use whichever you are most comfortable with.
Working with Apt
# update the db of available packages. Do this before running the other commands.
apt-get update
# upgrade currently installed packages to the most stable version
apt-get upgrade
# find what package provides some functionality you're after
apt-cache search somekeyword
# install a new package
apt-get install nameofthepackage
# remove a currently installed package
apt-get remove nameofthepackage
Apt knows about which packages are available by consulting lists of packages which get downloaded
from the net when you run apt-get update
. You can view and manage apt's sources by editing the file
/etc/apt/sources.list, and the files in /etc/apt/sources.list.d/ (files there must end with a .list extension to be effective).
Sometimes when adding software to your system the instructions will tell you to modify the apt sources, or sometimes
installing a third party program (such as the Google Chrome browser) will add an apt source file automatically.
On Ubuntu, the add-apt-repository command can be used to add a new apt source.
You should always run apt-get update
whenever your apt sources change, and whenever you start
to use apt. This keeps apt's list of packages current, but doesn't make any changes to what's actually installed on your
server.
The apt-get upgrade
command will upgrade packages unless new dependencies are required for
those. If you don't change your sources list, you can run this without risking upgrading to incompatible versions (e.g.
that need different configuration files.)
You should update your system regularly, e.g. weekly, to ensure you are not vulnerable to known OS exploits. You can either do that manually, or configure your system for automatic upgrades. For further information on how to do that, see Keeping your server up to date.
One of the goals of apt, which is still a point of difference for Debian and some derived distributions, is the
ability to upgrade a distribution in place, that is upgrade software so your server runs a later version of Debian. You
could do that by modifying the sources.list file to point to the later release, and then running
apt-get dist-upgrade
. Ubuntu have depreciated that in favour of their own command for upgrading
(do-release-upgrade). However, there is a better way to do a distribution upgrade than those methods.
We recommend using the distrorejuve tool, which uses apt in the background but also does a number of other tasks to ease the upgrade. For more information about both distrorejuve and manual upgrades see Upgrading Debian and Upgrading Ubuntu.
You may get this message when you run apt-get upgrade
. It means
one of the updated packages has a dependency which does not currently
exist on your system. Try an apt-get update
first, if that doesn't work it could be an indication that your
sources list has changed, and that is causing problems. Perhaps see the section on distribution upgrades above.
The dpkg
command is the lower-level tool used by apt to actually install, upgrade and remove
individual packages. You won't normally need to use that unless apt is broken for some reason.
Working with dpkg
# Install a deb
dpkg -i packagename.deb
# to find out summary information about a .deb package
dpkg --info packagename.deb
# to find out what files are in a .deb package
dpkg --contents packagename.deb
#To list all packages installed on your server
dpkg -l
# To find out if a particular package is installed
dpkg -l thepackagenameyoureinterestedin
#To find out which deb installed a particular file on your server, run:
dpkg -S /path/to/filename
Apt was originally only available for Debian users, and equivalent functionality was not available for Red Hat derived distros. Then apt was ported to Red Hat/rpm, and RimuHosting started providing apt with those distros. More recently Red Hat started supporting yum, which is now the standard equivalent tool used by RH/CentOS. Consequently, if you have an older CentOS system, you may find both apt and yum installed. You should normally use yum on CentOS systems these days in preference to apt.