什么是PPA,我如何使用它们?


45由于没有一个答案实际上解释了什么是PPA(而是关注如何添加它们),请在关闭“什么是PPA”类型的问题并链接到这里之前三思。保留其中一个问题可能会鼓励某人回答。 - Chan-Ho Suh
10个回答

对于Ubuntu 11.04及更高版本

在添加PPA之前,您应该了解其中的一些风险:

请始终记住,PPA是由社区提供的,您在添加PPA之前应该意识到可能存在的风险。

首先,通过点击主页按钮(位于左上角)或按下Super键来打开Dash。
搜索“软件中心”并启动Ubuntu软件中心。
将鼠标移动到顶部面板上应用程序名称所写的位置。
现在,转到“编辑”菜单并选择“软件源”。
对于更新版本,请右键单击并选择“软件和更新” enter image description here 然后,点击其他软件, 输入图像描述
  • 在提示时输入您的密码。

    enter image description here

  • 切换到“其他软件”选项卡。

    enter image description here

  • 现在点击“添加”,会出现一个框。

    enter image description here

  • 您必须在框中输入PPA。它可以在启动页面上以BOLD字体找到。

    enter image description here

    enter image description here

  • 现在点击“添加源”并关闭软件源。缓存将被刷新。

    enter image description here

  • 现在从软件中心安装软件。

    enter image description here


9哇,太酷了。Ubuntu有一个漂亮、用户友好的界面,用于“输入您想要添加为源的仓库的完整APT行。”...哦,没事了。;-) - Ajedi32
很好,直到缺少关于如何获取PPA的APT Line内容的解释。 :) - George
这个答案已经过时了。要获取最新的指南,请点击这里 - Stefan Monov
如何在不将软件添加到源列表的情况下安装PPA上的软件?我能否在独立于系统的单独安装中进行安装? - Royi
6这甚至都没有回答楼主的第一个问题 - PPA是什么。 - antikbd
4真是令人气愤,一个回避问题的回答竟然成为了最受欢迎的答案。 - Trunk

什么是PPA?

PPA是用于非标准软件/更新的。它们通常被那些想要最新和最好的人使用。如果你为了获取这种类型的软件而付出额外努力,那么你应该知道自己在做什么。软件中心的选择对大多数人来说已经足够。

命令行

在命令行中,你可以使用add-apt-repository添加一个PPA,例如:

sudo add-apt-repository ppa:gwibber-daily/ppa

要删除PPA,请在/etc/apt/sources.list.d中删除相应的文件(这不会删除您从PPA安装的软件包)。要查看来自PPA的可用软件包或删除从PPA安装的软件包,请按下Synaptic窗口左下角的“Origin”按钮,并从列表中选择PPA。
您可以使用常规的软件源对话框,在要求APT行的位置添加ppa:gwibber-daily/ppa,并像其他存储库一样启用或禁用它们。
由于任何人都可以创建PPA,因此无法保证PPA的质量或安全性 - 就像任何其他非官方软件源一样,您必须自己决定PPA是否值得信赖。而且,从PPA安装的任何其他非官方软件包在升级到新版本的Ubuntu时可能会导致各种困难。
如果你收到一个错误,说找不到add-apt-repository命令:
  • 在12.04及更早版本中,安装python-software-properties软件包:

    sudo apt-get install python-software-properties
    
  • 在14.04及更高版本中:

    sudo apt-get install software-properties-common
    

25让我感到困扰的是,在声称为人类设计的 Linux 上,添加 PPA 要么需要在命令行中输入一些神秘的代码,要么需要在图形界面工具中添加一些神奇的文本。这实在不够好。 - trampster
52PPA是用于非标准软件/更新的。它们通常被那些想要最新、最好的人使用。如果你为了获取这种软件而采取额外努力,那么就应该知道自己在做什么。软件中心的选择对大多数人来说已经足够了。 - dv3500ea
9@trampster:这些问题将来会由软件中心处理:https://wiki.ubuntu.com/SoftwareCenter。与此同时,我们只能使用PPA。 - Jorge Castro
我觉得这个很简单啊:你只需要打开一个网页,复制一行短文本到对话框中,然后安装程序,就会自动获取更新。我从来没有见过类似的简便方法适用于Mac或Windows系统。 - Florian Diesch
1我更喜欢的是下载一个文件,双击它,然后它会要求我的密码,然后添加它所需的ppa。当我的非技术家人寻求帮助时,他们一旦意识到需要输入或者甚至复制粘贴随机文本来进行更新,就会关闭计算机。正如Jorge指出的那样,在软件中心提供该选项将更好。 - trampster
15@trampster Windows/Mac是否持续跟进其所有软件,为其提供更新?PPA存在安全风险,需要一定的设计元素来阻止用户的愚蠢行为。更多信息:http://thepcspy.com/read/linux-isnt-invulnerable/ - Oli
3最近对PPA的高需求似乎是Ubuntu最近发生的巨大变化的结果,这使得稳定版本对很多人来说显得不够用。这是我第一次需要添加超过1或2个相当不重要的PPA - 以前只是为了测试修复bug。 - Sean Houlihane
这个命令在12.04服务器的原始安装中不可用,需要安装python-software-properties软件包。 - HorusKol
@trampster 你对于将Ubuntu与专有操作系统进行“单一成功”的比较是荒谬的。如果Ubuntu比其他Linux发行版更困难,那么你说得对。 - Eric Wilson
如果我没记错的话,apt-add-repository 实际上并不会从 PPA 安装任何东西。你需要使用 apt-get install 命令来获取 PPA 中的软件并使用它。 - flow2k
1PPA是什么?PPA用于非标准软件/更新。这并没有回答“PPA是什么?”而是回答了“PPA的用途是什么?” - xDaizu

对于Ubuntu 10.10

虽然许多人发现使用命令行工具更容易添加PPA,但那些喜欢图形界面的人可以通过Ubuntu软件中心来完成。在这个演示中,我们将添加 Banshee团队的PPA,以获取最新的稳定版本。

我们将从应用程序菜单中打开Ubuntu软件中心开始。

Applications > Ubuntu Software Center

manu

现在在软件中心,点击“编辑”>“软件源”。

menu2

您将被要求输入您的管理员密码。

gksu

现在在软件源中打开“其他软件”选项卡,然后点击“添加”。

add

在这个对话框中,我们将输入PPA的信息。

software-properties-gtk

这些信息可以在PPA的网站上找到,以粗体显示在标题将此PPA添加到您的系统下面。对于Banshee PPA,它看起来是这样的:

ppa

现在我们可以关闭软件源,软件中心将自动更新,以便您可以从PPA访问新的软件包。

update

从软件中心的左侧栏展开“获取软件”菜单,您可以查看PPA提供的软件包。

new


2这是一个“社区百科”,所以请随意添加内容。 - andrewsomething
1那是10.10的默认图标集吗? - Marco Ceppi
3不,我忘记了当我拍摄那些照片时没有使用默认图标。那是faenza-icon-theme。它可以在这个PPA中找到:https://launchpad.net/~tiheum/+archive/equinox - andrewsomething

对于Ubuntu 10.04

在Ubuntu 10.04中添加PPA的方法如下:

  • 打开“系统”->“管理”->“软件源”:

menu

您将被要求输入密码。请注意,只有管理员用户才能添加PPA,因为添加PPA存在安全风险和系统范围的后果。在对话框中输入密码以继续:

gksu

在“软件源”窗口中,点击“其他软件”选项卡,然后点击“添加...”按钮。这将弹出一个提示框,要求输入“APT行”:

apt line

将要粘贴到此框中的文本可以在启动页面上找到,在“将此PPA添加到您的系统”部分以粗体字显示。

将您复制的行粘贴到“软件源”文本框中(CTRL+V):

enter image description here

关闭软件源窗口;您将被要求重新加载软件包信息。通过点击“重新加载”按钮来执行此操作。

reload sources

您现在可以在Ubuntu软件中心找到来自此PPA的软件包。

software centre


什么是PPA?

一旦你掌握了它,这一切都非常简单。我在某些地方遇到了问题,但总的来说,PPA是在Ubuntu发行版之间更新软件的唯一途径(不要让我对此发表评论)。这里解释起来太复杂了,所以我会给你指出一些有价值的文档。但首先,有几个简单的规则:

了解你要安装的内容。大多数情况下,你可能会使用Launchpad来满足大部分PPA需求,但即便如此,它也可能对你的计算机造成危险。通常我担心的不是恶意意图,而是冲突的软件包。如果软件包A需要一个修改过的ffmpeg版本,而另一个存储库中的软件包B也需要一个修改过的ffmpeg版本,那么现在很有可能你无法观看视频,例如,无论是使用软件包A、B还是其他任何软件包。

记住,任何人都可以创建PPA,包括你。仅仅因为一个人签署了行为准则并不意味着他们知道自己在做什么。在Launchpad上,不仅有稳定版本的更新,还有测试版和预览版软件,甚至有一些尚未完全运作的东西。有许多有用的软件仓库,比如获取最新的Nvidia驱动程序或当前稳定版本的Pidgin。当然,也有一些某个人在地下室为自己和几个朋友制作的东西。
话虽如此,Ubuntu文档网页应该以相当易懂的格式提供了你所需的一切信息。
Ubuntu的软件仓库:https://help.ubuntu.com/community/Repositories/Ubuntu 软件管理:https://help.ubuntu.com/community/SoftwareManagement 仓库和命令行:https://help.ubuntu.com/community/Repositories/CommandLine 一个快速提示:我假设您正在使用Ubuntu 10.04。如果您使用的是10.10版本,在菜单中将不再有"软件源",尽管一些文档中提到了它。要访问它,只需打开Synaptic包管理器,然后从菜单中选择设置->存储库。
祝您好运,希望这对您有帮助。
编辑:请注意,通过Ubuntu软件中心安装软件可能会有问题。这是因为它不会告诉您安装特定应用程序所需的依赖关系。也就是说,您可能会安装整个KDE桌面,数百MB的内容,仅仅是为了得到一个屏幕标尺或防火墙配置工具。我是付出了惨痛的代价才了解到这一点...例如,在搜索框中输入"kruler",您将看到最终安装大小接近100MB。如果您坚持使用Ubuntu软件中心,请至少密切注意最终安装大小。大多数新用户对窗口管理器和桌面环境的概念都不熟悉,他们只熟悉Windows,因此在仅仅依赖Ubuntu软件中心而不学习全部关于PPA的知识时要小心,这是我推荐的做法。这可能需要更多的工作,但这只是我的观点,您可能会因此而感到满意! :)

使用PPA的一点需要记住的是,当您将PPA添加到软件源时,您为每个能够向该PPA上传的人提供了管理访问权限(root)。与主要的Ubuntu存档中的常规软件包一样,PPA中的软件包在安装时可以访问您的整个系统,因此在将其添加到系统之前,请始终决定是否信任该PPA。

6非常重要的评论。对于不了解情况就使用ppa可能会给系统带来潜在的损害,这一点非常重要。谢谢。 - Jorge Pinho

使用ppa-purge 安装 ppa-purge移除PPA

仅仅通过从sources.list中删除或在软件源设置中取消勾选添加到我们源中的任何PPA可能是不安全的。更好的做法是,还应该删除从该PPA安装的所有软件包,并用Ubuntu默认软件包替换它们。

为此,我们有一个脚本ppa-purge 安装 ppa-purge,它不仅会移除不需要的PPA,还会用默认的Ubuntu版本替换从该PPA安装的软件包。安装后只需运行以下命令:

sudo ppa-purge ppa:<lp-name>/<ppa-name>

在添加此PPA时,<lp-name>/<ppa-name>是我们输入到源中的相同名称。然后将删除该PPA。从此PPA安装的软件包将被默认的Ubuntu软件包替换(不会删除默认存储库中不存在的已安装软件包)。


1由于删除了一个带有指向ppa-purge的评论作为答案,我觉得我们可能仍然需要在我们的答案列表中提供关于如何使用PPA的参考资料。 - Takkat
1“lp” stands for “列表项(List Point)” in Chinese. In the context of "precise-partner.list," the meaning of "lp" would be "列表项." - isomorphismes
4@isomorphismes:Ubuntu PPA是托管在launchpad(lp)上的,它们有特定的名称和子名称,例如ppa:takkat-nebuk/takkat。在这个例子中,takkat-nebuk是我的lp名称,takkat是要添加到您的源中的ppa的名称。 - Takkat

如果您在找到正确的add-apt-repository命令时遇到困难,有人创建了一个名为ppasearch的脚本,以使这项任务变得更容易。要安装ppasearch,您需要运行以下命令:
sudo add-apt-repository ppa:wrinkliez/ppasearch
sudo apt-get update
sudo apt-get install ppasearch

如果你使用的是Maverick系统,你可以手动下载并安装lucid deb包。它应该能正常工作。
这将添加ppasearch PPA(及其密钥)并安装软件包。您可以在终端中输入以下命令来运行脚本: ppasearch PPANAME
所以要找到Cardapio团队的PPA,您可以运行: ppasearch cardapio
如下面的截图所示,您将看到一系列匹配的PPA。一旦选择了您想要的PPA,脚本将使用add-apt-repository将其添加。如果您希望更新源,ppasearch甚至会为您运行sudo apt-get update命令。

ppasearch screenshot

还有一个视频展示了这个脚本的操作,但是它稍微过时了。
这个脚本能够方便地帮助你添加 PPA 和它们的密钥,无需在 Launchpad 上四处搜索。

我在2014年尝试过这个PPA,但找不到http://ppa.launchpad.net/wrinkliez/ppasearch/ubuntu/dists/precise/main/binary-i386/Packages。显示的是`404`错误。 - isomorphismes
看起来是废弃软件。 - Jonathan

http://www.winehq.org/site/download-deb 是我尝试为Wine PPA做的。

我要注意的是,Maverick已经改变了,现在我必须再次编辑说明(不再有administration->software sources,而是必须从软件中心进入)。

Launchpad内置的说明比一年前好了一些,但仍然相当糟糕。


有关PPA(个人软件包存档)的信息,请访问Ubuntu帮助页面上的PPA
在Ubuntu上有一个名为Y PPA Manager的工具可用。它是一个以最佳方式管理PPA的图形界面工具。
要安装y-ppa-manager,请在终端中运行以下命令:
sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

更多信息和主要功能,请访问https://launchpad.net/y-ppa-manager
如何找到PPA?(当apt无法找到软件包时的解决方案)
您可以从launchpad页面上找到PPA,如下图所示建议:

adding ppa to your system


你可以从Ubuntuupdates -Package Search中找到PPA,如下图所示:

adding third party repository


然后在终端中按照以下步骤添加存储库:
sudo add-apt-repository ppa:<someppa/ppa>
sudo apt-get update