Ubuntu, like Debian, installs it’s software in the form of .deb files.  These .deb files contain software, configuration files, documentation, and dependency information.

First, we’ll get some of the common terminology taken care of, then we’ll discuss package management using apt-get, and finally, package management using deb files.

Packages

Packages in this case refers to software in the form of .deb bundles.  Packages contain compressed archives with files, documentation, management scripts, and dependency information.

Sources

Sources refer to a location containing software packages.  Apt-get uses software repository locations to automatically install the correct package or series of packages.

Dependencies

Dependencies refer to libraries or other pieces of software necessary for any given software to run.  For example, you want to install somepackage-0.123-4.i386.deb.  In order for this software to install, any software that it needs to run will need to be installed either automatically through apt-get or by manually installing a .deb file.

Package Naming Conventions

Proper deb packages adhere to a standard naming convention.  The name may seem a bit long, but knowing how to identify a package based on it’s naming convention helps considerably when trying to find the correct software.  Packages are usually referred to using the following naming convention, in this example we’re using the package “screen”

packagename_version_architecture.deb

in our example, the package “screen” is

screen_4.0.3-11ubuntu4_i386.deb

Working with Ubuntu Packages

There are two main considerations for package management in Ubuntu:  dpkg and apt.  The dpkg command is used to manipulate (create, query, install, etc) .deb packages.  The apt command set allows you to install packages from remote sources, whereas dpkg is used on .deb files that are already downloaded to your system.  The best way to think about apt versus dpkg is that apt extends dpkg so that if a package requires dependencies, apt will attempt to fetch and install them in order to install the requested package.  Here I will show you some examples of common package management in Ubuntu:

First update your apt-cache sources

apt-get update

Update all available pacakages on your system

apt-get upgrade

To install a pacakge, in this case screen

apt-get install screen

To remove screen but keep it’s configuration files

apt-get remove screen

To completely remove screen including it’s configuration files

apt-get –purge remove screen

To list all pacakages installed on a system

dpkg -l

To list the current version of a particular pacakge on a system, in this case screen

dpkg -l | grep ‘screen’

To search for pacakages that match a description, in this case ‘nids’

apt-cache search ‘nids’

To show general information about a package, in this case “harden-nids”

apt-cache showpkg harden-nids

To install a .deb file already downloaded to your server

dpkg -i package.deb

To remove a .deb file

dpkg -r package.deb

 

To remove all leftover .deb files after updates/upgrades

apt-get autoclean

For more information on Ubuntu package management check the Ubuntu Community Server Guide portion on Package Management:

https://help.ubuntu.com/lts/serverguide/package-management.html.en