I recently posted an answer where I wrote add the PPA. But I now realize, that I have no idea what the difference between a PPA and a Repository is. So can someone please explain it to me?

up vote 12 down vote accepted

Repositories

On systems like Ubuntu, most software is packaged in nice .deb (or .rpm, like in Red Hat) files which contain the programs and libraries you need. These files can be downloaded or come in CDs (Ubuntu's CD is full of them). Repositories are servers which contain sets of packages.

PPA

Personal Package Archives (PPA) allow you to upload Ubuntu source packages to be built and published as an apt repository by Launchpad.

Also see What are PPAs and how do I use them?

To sum it up:

  • A repository has packages.
  • PPAs are packages (/collections of software).
  • Launchpad has a repository that holds PPAs (/collections of software).
  • 4
    Isn't a PPA just a repository or software selected and maintained by an individual or group? (who are not directly related to Canonical or Official Ubuntu devlopers). A PPA is like a repository and not a single package. – Fahad Yousuf Sep 9 '13 at 13:36
  • 11
    A PPA is not a package, it's a repository. Each PPA can contain multiple packages. Launchpad is (or rather hosts) a collection of repositories called PPAs. – Gilles Mar 10 '14 at 2:19
  • such a clear explanation. So, more clear explanation would be Repository is C://ProgramFiles and PPA are the installed program folders in that – Abhimanyu Aryan Dec 4 '15 at 19:52
  • @AbhimanyuAryan No, C:\ProgramFiles is nothing like a repo, ad the dirs within it are nothing like PPAs. Unless you're making a metaphor, in which case I must have missed the point. – wjandrea Nov 14 '17 at 22:28

I have to disagree with the accepted answer to this question. I would have written the following as a comment to that answer, but it's too lengthy.

  • A repository is a collection of packages, hosted on an arbitrary server.
  • A PPA is also a collection of packages, hosted on the Launchpad servers.

    In particular, a PPA is not a single package, as that very ambiguously formulated point "PPAs are packages (/collections of software)." in the accepted answer may lead to believe. Additionally, a package is not (necessarily) a collection of software, which makes that point even more confusing.

  • Thus, a PPA is a special kind of repository. Like a square is a special kind of rectangle.

The main difference is the hoster. Basically, if you are a programmer and want to develop and distribute your own packages, and you have your own root server in the Internet, you can set up your own repository on it. Great! But what if you don't have a root server, and you don't want to pay for one, but still want to develop and distribute your own packages? Well, then there's Launchpad. It's offering PPAs as a service for exactly that use case. You can basically create your own repository on Launchpad, and manage your own packages there.

Let's have a look at an illustrating example.

  1. First, assume you want to install the MATE Desktop Environment (a Gnome 2 fork) on Ubuntu Saucy Salamander. It is not contained in the official repos, nor do the devs maintain a PPA. Instead, they have their own repo. You could add it like so:

    $ sudo add-apt-repository http://packages.mate-desktop.org/repo/ubuntu
    

    This would result in the following entry being added to /etc/apt/sources.list:

    deb http://packages.mate-desktop.org/repo/ubuntu saucy main
    
  2. Second, assume you also want to have a look at Cinnamon (another Gnome 2 fork). This is contained in the official repos since 13.04, but there's still a PPA maintained by the devs, useful for instance if you're interested in getting new releases quicker. You could add it like so:

    $ sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
    

    This would result in the following entry being added to /etc/apt/sources.list.d/gwendal-lebihan-dev-cinnamon-stable-saucy.list:

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    As you can see, the latter entry is quite similar as the one made in point (1). In fact, both are just URLs of repositories from Ubuntu's perspective.

  3. In fact, you could even add the Cinnamon PPA with the same syntax as in point (1), although this is not the typical way for adding PPAs:

    $ sudo add-apt-repository http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu
    

    This would result in the following entry being added to /etc/apt/sources.list:

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    This is the exact same entry as in point (2). Only the files that these entries are written to are handled slightly differently, but in the end, it makes no real difference. In both cases, you will end up with the packages from the Cinnamon PPA being available on your system, always after the canonical sudo apt-get update, of course.

  • According to manual of add-apt-repository in Xenial, if the ppa:<user>/<ppa-name> form is used, "The GPG public key of the newly added PPA will also be downloaded and added to apt's keyring." I suppose this is not the case, if the URL form is used. Actually, the manual does not tell you could use the kind of URL form you use in 1 and 3, but "a line that can be added directly to sources.list". Nevertheless, the form you use seems to work. – jarno Nov 29 '16 at 15:23
  • 1
    @jarno Yes, the manpage of add-apt-repository is indeed incomplete in that respect. Please use add-apt-repository --help to see that the URL form I used in 1 and 3 is indeed correct and an intended possible option. Furthermore, your assumption is absolutely correct: The GPG public key of a PPA will not be added when using the URL form. That's a useful addition, thanks! :) Please note that I do not recommend using the form described in 3 to add PPAs. It was just meant as an illustration to show that in fact, a PPA is simply a specific kind of repository. – Malte Skoruppa Nov 29 '16 at 18:31

There is no technical differences between a repository and a PPA as far APT is concerned. Both are software repositories that offers packages, from APT point of view is the same mechanisms of installing packages.

PPA is a repository of packages that uses Launchpad as backend. Is just another name for the same thing, that is (at least in principle) normally used for personal reasons, which automates most operations you otherwise had to do manually or setting up your own services.

Repositories is wherever there is software, in this case, package lists and packages to be installed in Debian based distros.

You can have your personal repository, without the use of Launchpad and it could be called PPA, because is Personal.

The only difference in the usage is solely in the syntax of the add-apt-repository which uses the magic keyword ppa: instead of forcing the user to write the full url which is required for non Launchpad repositories.

A repository is a collection of various software which enables software like apt-get, aptitude etc. to download and install said software. Their content is visible for inspection by all. Read the Ubuntu Help Page on repositories for enlightenment.

PPAs are special repositories for software which is not yet adopted for the entire community by the distro leadership. PPA software can have defects and can even be used for malware because they are not extensively reviewed as as the general repositories. For more, see Launchpad's explanation of PPAs and this discussion of PPAs.

Repository is a place where package are stored or maintained for download or update.These are servers which contain sets of packages.

A Personal Package Archive (PPA) is a special software repository for uploading source packages to be built and published as an APT repository by Launchpad or a similar application. Mostly it is maintained by people who are not official Ubuntu developer

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.