This page describes how to manage software repositories from the command line. (GUI tools are also available: Managing Repositories in Ubuntu or Kubuntu).
If you are using a minimal install or server install you will need to be familiar with a terminal based text editor like nano. If you are using a GUI install you can use Nano or GEdit.
The Basics
Ubuntu uses apt for package management. Apt stores a list of repositories or software channels in the file
/etc/apt/sources.list
and in any file with the suffix .list under the directory
/etc/apt/sources.list.d/
See man sources.list for more about this storage mechanism.
By editing these files from the command line, we can add, remove, or temporarily disable software repositories.
Note: It's always a good idea to backup a configuration file like sources.list before you edit it. To do so, issue the following command:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
Typically, the beginning of the file /etc/apt/sources.list looks like this:
# sources.list #deb cdrom:[Ubuntu 13.10 _Saucy Salamander_ - Release i386 (20131016.1)]/ saucy main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://ch.archive.ubuntu.com/ubuntu/ saucy main restricted deb-src http://ch.archive.ubuntu.com/ubuntu/ saucy main restricted #...
Explanation of the Repository Format
- All the lines beginning with one or two hashes (#) are comments, for information only.
The lines without hashes are apt repository lines. Here's what they say:
deb: These repositories contain binaries or precompiled packages. These repositories are required for most users.
deb-src: These repositories contain the source code of the packages. Useful for developers.
http://archive.ubuntu.com/ubuntu: The URI (Uniform Resource Identifier), in this case a location on the internet. See the official mirror list or the self-maintained mirror list to find other mirrors.
saucy is the release name or version of your distribution.
main & restricted are the section names or components. There can be several section names, separated by spaces.
Other Versions
For other Ubuntu releases you would replace the 'saucy' with the current version you have installed ('precise', 'quantal', 'raring', 'saucy', 'trusty', ...) Type lsb_release -sc to find out your release.
Adding Repositories
Adding the Universe and Multiverse Repositories
Additional software repositories such as Universe and Multiverse can be enabled by uncommenting the corresponding apt lines (i.e. delete the '#' at the beginning of the line). For Universe, uncomment those lines:
deb http://us.archive.ubuntu.com/ubuntu/ saucy universe deb-src http://us.archive.ubuntu.com/ubuntu/ saucy universe deb http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe deb-src http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe
There are four similar lines for 'multiverse'.
OR you may use the add-apt-repository command. If your release is 'saucy':
sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ saucy universe multiverse" sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe multiverse"
Depending on your location, you should replace 'us.' by another country code, referring to a mirror server in your region. Check sources.list to see what is used!
Type lsb_release -sc to find out your release. You may repeat the commands with "deb-src" instead of "deb" in order to install the source files.
Don't forget to retrieve the updated package lists:
sudo apt-get update
Adding Partner Repositories
You can add the partner repositories by uncommenting the following lines in your /etc/apt/sources.list file:
deb http://archive.canonical.com/ubuntu saucy partner deb-src http://archive.canonical.com/ubuntu saucy partner
Then update as before:
sudo apt-get update
Be aware that the software contained within this repository is NOT open source.
Adding Other Repositories
There are some reasons for which you might want to add non-Ubuntu repositories to your list of software sources. Caution: To avoid trouble with your sytem, only add repositories that are trustworthy and that are known to work on Ubuntu systems!
You can add custom software repositories by adding the apt repository line of your software source to the end of the sources.list file. It should look something like this:
deb http://mirror3.ubuntulinux.nl/ hardy-seveas freenx
- Don't forget to make apt aware of your changes:
sudo apt-get update
Adding Launchpad PPA Repositories
Adding Launchpad PPA (Personal Package Archive) is possible conveniently via the command: add-apt-repository. This command is similar to "addrepo" on Debian.
The command updates your sources.list file or adds/edits files under sources.list.d/. Type man add-apt-repository for detailed help.
- If a public key is required and available it is automatically downloaded and registered.
Should be installed by default. On older or minimal Ubuntu releases, you may have to install software-properties-common and/or python-software-properties first (sudo apt-get install python-software-properties)
sudo add-apt-repository ppa:<repository-name>
Example: sudo add-apt-repository ppa:nhandler/ppa
Enabling Repositories with a (non-interactive) Script
This section seemed obsolete due to the add-apt-repository command, thus it has been removed.
Suggestions & Recommendations
It is always a good idea to back up configuration files like /etc/apt/sources.list before you begin editing. You can then revert your changes if needed.
If you decide to add other repositories to sources.list, make sure that the repository is meant to work (and known to work) with Ubuntu. Repositories that are not designed to work with your version of Ubuntu can introduce inconsistencies in your system and might force you to re-install. Also, make sure that you really need to add external repositories as the software package(s) you are looking for may already have been introduced into the official repositories!
Please keep in mind that it may not be legal (typically because of export restrictions) to enable some non-Ubuntu software repositories in some countries.
You may be asked enter a security key when adding a non-Ubuntu repository to your sources. See Managing Authentication Keys for instructions.
Remember to retrieve updated package lists by issuing a sudo apt-get update when you're done editing sources.list.
Further Reading
Secure Apt on the Debian Wiki