You can simply add the
add-apt-repository command. In 13.10 and later, you also need to run this command:
sudo apt-get install software-properties-common
Side note: in 11.04 they added a symlink to
add-apt-repository so it can be run as
apt-add-repository which totally makes more sense to me. Everything else apt starts with "apt".
NOTE: It's part of the
python-software-properties package (before 13.10):
sudo apt-get install python-software-properties
Let me teach you how to fish.
apt-file enables you to find out which package provides a given file.
dpkg -S does the same thing, but only for installed packages.
apt-file works whether or not the package has been installed.
So, first you install apt-file:
sudo apt-get install apt-file. You then need to update its information, just as you have to with apt-get:
sudo apt-file update. Now it's ready for use:
$ apt-file search add-apt-repository python-software-properties: /usr/bin/add-apt-repository python-software-properties: /usr/share/man/man1/add-apt-repository.1.gz
So, in this case the next thing to do would be to install python-software-properties.
It is not necessarily the best answer, but this will function:
The old-fashioned way (pre Ubuntu 9.10, they call it) of editing
/etc/apt/sources.list still works. You will also need to get the GPG key on the system manually.
On older (pre 9.10) Ubuntu systems:
Step 1: Visit the PPA's overview page in Launchpad. Look for the heading that reads Adding this PPA to your system and click the Technical details about this PPA link.
Step 2: Use the Display sources.list entries drop-down box to select the version of Ubuntu you're using.
Step 3: You'll see that the text-box directly below reads something like this:
deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main deb-src http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main
Copy those lines.
Step 4: Open a terminal and type:
sudo gedit /etc/apt/sources.list
This will open a text editor containing the list of archives that your system is currently using. Scroll to the bottom of the file and paste the lines you copied in the step above.
Save the file and exit the text editor.
Step 5: Back on the PPA's overview page, look for the Signing key heading. You'll see something like:
1024R/72D340A3 (What is this?)
Copy the portion after the slash but not including the help link; e.g. just 72D340A3.
Step 6: Now you need to add that key to your system so Ubuntu can verify the packages from the PPA. In your terminal, enter:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3
(Replace 72D340A3 with whatever you copied in the step 5.)
This will now pull down the PPA's key and add it to your system.
Step 7: Now, as a one-off, you should tell your system to pull down the latest list of software from each archive it knows about, including the PPA you just added:
sudo apt-get update
Now you're ready to start installing software from the PPA!
I had a debate with a colleague about this a few weeks ago. Give
a try. Doesn't need any other packages. Note that apt appears before add. Order does matter because add-apt-repository needs to be installed.
For those naysayers out there. Give this Vagrant file a try. Note, I'm starting from a fresh trusty image, and adding the ppa right out of the box.
# -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.ssh.username = "vagrant" config.vm.provision "shell", inline: <<-SHELL sudo apt-add-repository ppa:george-edison55/cmake-3.x -y sudo apt update sudo apt upgrade sudo apt install -y virtualbox-guest-dkms sudo apt-get install -y curl g++ libpng12-dev \ libtiff5-dev libssl-dev libxml2-dev libxslt1-dev libpq-dev postgresql-client \ postgresql pgadmin3 liblcms2-dev libcrypto++9 libcrypto++-dev \ graphviz-dev libboost1.55-dev libboost-filesystem1.55-dev libboost-system1.55-dev \ libexpat1-dev python-software-properties qtbase5-dev qttools5-dev \ libqt5svg5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev \ libsqlite3-dev qt5-default cmake SHELL end
Update: Just to clarify, it looks like the cloud images for ubuntu precise and up have the correct package already installed. So whether we are talking cloud-init scripts or a vagrant file, apt-add-repository is present. Since add-apt-repository is in the same package that should work as well.