PPA和存储库之间有什么区别?

我最近发布了一个答案,我写了添加PPA 。 但我现在意识到,我不知道PPA存储库之间的区别是什么。 有人可以向我解释一下吗?

在像Ubuntu这样的系统上,大多数软件都包含在很好的.deb(或.rpm,就像在Red Hat中)文件中,其中包含您需要的程序和库。 这些文件可以下载或以CD格式存储(Ubuntu的CD中已经装满了它们)。 存储库是包含多组包的服务器

PPA

个人包存档(PPA)允许上载Ubuntu源包,以便由Launchpad构建并作为apt存储库发布。

另请参阅什么是PPA以及如何使用它们?

把它们加起来:

  • 存储库有包。
  • PPA是包(/软件集合)。
  • Launchpad有一个存放库,可以容纳PPA(/软件集合)。

我不同意这个问题的接受答案 。 我会写下以下内容作为对该答案的评论,但它太冗长了。

  • 存储库是托管在任意服务器上的软件包的集合。
  • PPA 也是在Launchpad服务器上托管的软件包集合。

    特别是,PPA 不是一个单独的包,因为非常模糊的点“PPA是包(/软件集合)”。 在接受的答案中可能会导致相信。 另外, 不是(必然) 软件集合 ,这使得这一点更加混乱。

  • 因此,PPA是一种特殊的存储库。 就像一个正方形是一种特殊的矩形。

主要的区别是主持人。 基本上,如果您是程序员并希望开发和分发自己的软件包,并且在Internet中拥有自己的根服务器,则可以在其上设置自己的存储库。 大! 但是,如果您没有根服务器,并且您不想为一台服务器付费,但仍想开发和分发您自己的软件包,该怎么办? 那么,那就是Launchpad。 它提供PPA作为服务用于该用例。 您基本上可以在Launchpad上创建自己的存储库,并在那里管理您自己的包。

我们来看一个说明性的例子。

  1. 首先,假设您要在Ubuntu Saucy Salamander上安装MATE桌面环境 (Gnome 2分支)。 它不包含在官方回购中,开发者也没有维持PPA。 相反,他们有自己的回购。 您可以像这样添加它:

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

    这将导致以下条目添加到/etc/apt/sources.list

     deb http://packages.mate-desktop.org/repo/ubuntu saucy main 
  2. 其次,假设你也想看看Cinnamon (另一个Gnome 2前叉)。 这包含在自13.04以来的官方回购中,但仍然有开发人员维护的PPA,例如,如果您有兴趣更快地获得新版本,则非常有用。 您可以像这样添加它:

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

    这将导致以下条目添加到/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 

    如您所见,后一个条目与第(1)点中的条目非常相似。 事实上,两者都只是Ubuntu视角下的存储库URL。

  3. 事实上,您甚至可以使用与第(1)点相同的语法添加Cinnamon PPA,尽管这不是添加PPA的典型方法:

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

    这将导致以下条目添加到/etc/apt/sources.list

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

    第(2)点中的条目完全相同 。 只写入这些条目的文件的处理方式略有不同,但最终并没有什么区别。 在这两种情况下,您最终都会在您的系统上使用Cinnamon PPA的软件包,当然也可以在规范的sudo apt-get update之后使用。

就APT而言,存储库和PPA之间没有技术差异。 两者都是提供软件包的软件库,从APT的角度来看是安装软件包的相同机制。

PPA是使用Launchpad作为后端的软件包的存储库。 只是同一个东西的另一个名称,即(至少在原则上)通常用于个人原因,它可以自动执行大多数操作,否则您必须手动执行或设置自己的服务。

存储库是软件的任何地方,在这种情况下,软件包列表和软件包将安装在基于Debian的发行版中。

您可以拥有自己的个人存储库,而无需使用Launchpad,因此可以称为PPA,因为它是个人的。

使用中唯一的区别仅在于使用magic关键字ppa:add-apt-repository的语法ppa:而不是强制用户编写非Launchpad存储库所需的完整URL。

存储库是各种软件的集合,其使得诸如apt-get,aptitude等软件能够下载和安装所述软件。 他们的内容可供所有人查看。 阅读存储库中的Ubuntu帮助页面以获得启发。

PPA是软件的特殊存储库,发行机构尚未对整个社区采用。 PPA软件可能存在缺陷,甚至可能用于恶意软件,因为它们没有像通用存储库那样进行广泛的审查。 有关更多信息,请参阅Launchpad对PPA的解释以及对PPA的 讨论 。

存储库是存储或维护包以供下载或更新的地方。这些是包含多组包的服务器。

个人包存档(PPA)是一个特殊的软件存储库,用于通过Launchpad或类似应用程序上载要构建和发布为APT存储库的源包。 它主要是由非Ubuntu官方开发人员维护的