Answers:
在像Ubuntu这样的系统上,大多数软件都打包在漂亮的.deb(或Red Hat中的.rpm)文件中,该文件包含您需要的程序和库。可以下载这些文件或将其放入CD中(Ubuntu的CD中已经塞满了这些文件)。存储库是包含软件包集的服务器。
个人软件包档案(PPA)允许您上传Ubuntu源软件包,这些源软件包将由Launchpad构建并发布为apt存储库。
另请参阅什么是PPA,以及如何使用它们?
把它们加起来:
我必须不同意这个问题的答案。我会写以下内容作为对此答案的评论,但是它太长了。
PPA 也是在Launchpad服务器上托管的软件包的集合。
特别是,PPA 并不是一个单独的软件包,因为非常模糊地表述为“ PPA是软件包(/软件集合)”。在接受的答案中可能会导致相信。另外,软件包不是(不一定)是软件的集合,这使这一点更加令人困惑。
主要区别在于托管人。基本上,如果您是一名程序员,并且想要开发和分发自己的程序包,并且在Internet中拥有自己的根服务器,则可以在上面建立自己的存储库。大!但是,如果您没有根服务器,又不想花一台钱却又想开发和分发自己的软件包,该怎么办?好吧,然后是启动板。它提供PPA作为该用例的服务。您基本上可以在Launchpad上创建自己的存储库,并在那里管理自己的软件包。
让我们看一个示例。
首先,假设您想在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
其次,假设您还想看看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。
实际上,您甚至可以使用与(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-repository
Xenial的手册,如果使用该ppa:<user>/<ppa-name>
表格,“新添加的PPA的GPG公钥也将被下载并添加到apt的密钥环中。” 如果使用URL表单,我想情况并非如此。实际上,该手册并未告诉您可以使用在1和3中使用的那种URL形式,而是“可以直接添加到sources.list的一行”。但是,您使用的表格似乎有效。
add-apt-repository
在这方面的手册确实不完整。请add-apt-repository --help
用来查看我在1和3中使用的URL格式确实正确,并且是可能的选择。此外,您的假设是绝对正确的:使用URL表单时,不会添加PPA的GPG公钥。这是一个有用的补充,谢谢!:)请注意,我不建议使用3中描述的表格来添加PPA。它只是为了说明事实,实际上,PPA只是一种特定的存储库。
就APT而言,存储库和PPA之间没有技术差异。两者都是提供软件包的软件存储库,从APT的角度来看,它们是安装软件包的相同机制。
PPA是使用Launchpad作为后端的软件包的存储库。只是同一件事的另一个名字,(至少原则上)通常出于个人原因而使用,它可以使您不得不手动执行的大多数操作或设置自己的服务自动化。
仓库位于任何有软件的地方,在这种情况下,软件包列表和软件包都将安装在基于Debian的发行版中。
您可以拥有个人存储库,而无需使用启动板,它可以称为PPA,因为它是个人的。
用法的唯一区别仅在于语法add-apt-repository
使用魔术关键字,ppa:
而不是强制用户编写非Launchpad存储库所需的完整URL。
一个库是各种软件的集合使apt-get一样,资质等软件下载和安装软件的说。他们的内容可供所有人查看。阅读存储库上的Ubuntu帮助页面以获取启发。
PPA是软件的特殊存储库,发行版领导尚未为整个社区采用。PPA软件可能存在缺陷,甚至可以用于恶意软件,因为它们没有像一般存储库一样受到广泛的审查。有关更多信息,请参阅Launchpad对PPA的解释和对PPA的讨论。
存储库是存储或维护软件包以供下载或更新的地方。这些服务器包含软件包集。
一个个人包档案(PPA)是用于上传源码包一个特殊的软件库,以建立和公布由启动板或APT存储库中的类似的应用。通常由非官方Ubuntu开发人员维护