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

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

我最近发布了一个答案,我写道添加 PPA。但我现在意识到,我不知道电力供应协议和一个存储库是。那么有人可以向我解释一下吗?

答案1

简而言之:

  • 存储库是软件包的集合,托管在任意服务器上。
  • PPA 是托管在 Launchpad 服务器上的软件包集合。
  • 因此,PPA 是一种特殊的存储库。就像正方形是一种特殊的矩形一样。

主要的区别在于托管商。基本上,如果您是一名程序员,想要开发和分发自己的软件包,并且您在互联网上有自己的根服务器,那么您可以在其上设置自己的存储库。太好了!但是,如果您没有根服务器,并且不想为根服务器付费,但仍想开发和分发自己的软件包,该怎么办?那么,Launchpad 就是一个不错的选择。它为这种用例提供​​ PPA 服务。您基本上可以在 Launchpad 上创建自己的存储库,并在那里管理自己的软件包。

我们来看一个说明性示例。

  1. 首先,假设您要安装MATE 桌面环境(Gnome 2 分支)在 Ubuntu Saucy Salamander 上。它不包含在官方存储库中,开发人员也没有维护 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. 其次,假设你还想看看肉桂 (另一个 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. 事实上,你甚至可以添加 Cinnamon PPA与第 (1) 点语法相同,尽管这不是添加 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

答案2

存储库

在 Ubuntu 等系统上,大多数软件都打包在漂亮的 .deb(或 .rpm,如 Red Hat)文件中,其中包含您需要的程序和库。这些文件可以下载或包含在 CD 中(Ubuntu 的 CD 中有很多文件)。存储库是包含软件包集的服务器

电力供应协议

个人软件包存档(PPA)允许上传要构建并发布的 Ubuntu 源包Launchpad 的 apt 存储库

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

把它们加起来:

  • 存储库中有包。
  • PPA 是个人软件包的档案。
  • Launchpad.net 持有 PPA。

答案3

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

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

存储库是存在软件的地方,在本例中,是软件包列表和要在基于 Debian 的发行版中安装的软件包。

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

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

答案4

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

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

相关内容