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


Answers:


14

储存库

在像Ubuntu这样的系统上,大多数软件都打包在漂亮的.deb(或Red Hat中的.rpm)文件中,该文件包含您需要的程序和库。可以下载这些文件或将其放入CD中(Ubuntu的CD中已经塞满了这些文件)。存储库是包含软件包集的服务器

PPA

个人软件包档案(PPA)允许上传Ubuntu源软件包,这些源软件包将由Launchpad构建并发布为apt存储库

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

把它们加起来:

  • 存储库包含软件包。
  • PPA是软件包(/软件集合)。
  • Launchpad有一个存储PPA(/软件集合)的存储库。

4
PPA不仅仅是个人或团体选择和维护的存储库或软件吗?(与Canonical或Ubuntu官方开发者没有直接关系的人)。PPA就像一个存储库,而不是一个软件包。
Fahad Yousuf

11
PPA不是软件包,而是存储库。每个PPA可以包含多个程序包。Launchpad是(或更确切地说是托管)称为PPA的存储库的集合。
吉尔斯(Gilles)'所以

这样清晰的解释。因此,更明确的解释将是Repository是C:// ProgramFiles,而PPA是其中已安装的程序文件夹
Abhimanyu Aryan 2015年

@AbhimanyuAryan不,C:\ ProgramFiles就像一个回购协议,它里面的目录也不像PPA。除非您要进行隐喻,否则在这种情况下我一定会漏掉这一点。
wjandrea

这个答案是错误的。PPA不是软件包,而是存储库。我可以解决吗?
Reinier

66

我必须不同意这个问题的答案。我会写以下内容作为对此答案的评论,但是它太长了。

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

    特别是,PPA 并不是一个单独的软件包,因为非常模糊地表述为“ PPA是软件包(/软件集合)”。在接受的答案中可能会导致相信。另外,软件包不是(不一定)是软件集合,这使这一点更加令人困惑。

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

主要区别在于托管人。基本上,如果您是一名程序员,并且想要开发和分发自己的程序包,并且在Internet中拥有自己的根服务器,则可以在上面建立自己的存储库。大!但是,如果您没有根服务器,又不想花一台钱却又想开发和分发自己的软件包,该怎么办?好吧,然后是启动板。它提供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,当然,总是在规范之后。


根据add-apt-repositoryXenial的手册,如果使用该ppa:<user>/<ppa-name>表格,“新添加的PPA的GPG公钥也将被下载并添加到apt的密钥环中。” 如果使用URL表单,我想情况并非如此。实际上,该手册并未告诉您可以使用在1和3中使用的那种URL形式,而是“可以直接添加到sources.list的一行”。但是,您使用的表格似乎有效。
jarno

1
@jarno是的,add-apt-repository在这方面的手册确实不完整。请add-apt-repository --help用来查看我在1和3中使用的URL格式确实正确,并且是可能的选择。此外,您的假设是绝对正确的:使用URL表单时,不会添加PPA的GPG公钥。这是一个有用的补充,谢谢!:)请注意,我建议使用3中描述的表格来添加PPA。它只是为了说明事实,实际上,PPA只是一种特定的存储库。
Malte Skoruppa '16

10

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

PPA是使用Launchpad作为后端的软件包的存储库。只是同一件事的另一个名字,(至少原则上)通常出于个人原因而使用,它可以使您不得不手动执行的大多数操作或设置自己的服务自动化。

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

您可以拥有个人存储库,而无需使用启动板,它可以称为PPA,因为它是个人的。

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


9

一个是各种软件的集合使apt-get一样,资质等软件下载和安装软件的说。他们的内容可供所有人查看。阅读存储库上的Ubuntu帮助页面以获取启发。

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


8

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

一个个人包档案(PPA)是用于上传源码包一个特殊的软件库,以建立和公布由启动板或APT存储库中的类似的应用。通常由非官方Ubuntu开发人员维护

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.