PPA是否可以安全地添加到我的系统中?需要注意哪些“危险信号”?

我看到很多有趣的程序只能通过向系统添加“PPA”来获得,但是,如果我理解正确,我们应该留在官方的“存储库”中,以便为我们的系统添加软件。

有没有办法让新手知道“PPA”是否安全或是否应该避免? 在处理PPA时,用户应该了解哪些提示?

PPA( 个人包存档 )用于将特定软件包含在您的Ubuntu,Kubuntu或任何其他PPA兼容发行版中。 PPA的“ 安全性 ”主要取决于三件事:

  1. 谁制作PPA – 来自WINE或LibreOffice的官方PPA,如ppa:libreoffice / ppa和我自己创建的PPA不一样。 你不认识我作为PPA维护者,所以信任问题和安全性对我来说非常低(因为我本可以制作一个损坏的软件包,不兼容的软件包或其他任何不好的东西),但对于LibreOffice和他们在网站上提供的PPA ,它给它一定的安全网。 因此,根据制作PPA的人,他或她制作和维持PPA的时间长短会影响PPA对您的安全性。 上述评论中提到的PPA未经Canonical认证。

  2. 有多少用户使用过PPA – 例如,我在个人PPA中有来自http://winehq.org的 PPA。 你是否相信我有10个用户确认使用我的PPA,其中有6个说它比糟糕,而不是Scott Ritchie在官方winehq网站上提供的ppa:ubuntu-wine / ppa 。 它有成千上万的用户(包括我)使用他的PPA并信任他的工作。 这是几年后的工作。

  3. PPA的更新程度如何 – 假设您使用的是Ubuntu 10.04或10.10,并且您希望使用这种特殊的PPA。 你发现该PPA的最后一次更新是在20年前.Oo你使用THAT PPA的机会是空的。 为什么?。 因为PPA所需的软件包依赖性非常老,而且更新后的软件包可能会更改代码,因此如果您将PPA的任何软件包安装到系统中,它们将无法使用PPA并可能破坏您的系统。

    如果他/她想要使用THAT PPA,PPA的更新如何影响使用它的决定。 如果不是,他们宁愿去寻找另一个更新的。 您不希望Banshee 0.1或Wine 0.0.0.1或OpenOffice 0.1 Beta Alpha Omega Thundercat Edition与最新的Ubuntu。 你想要的是一个更新到你当前的Ubuntu的PPA。 请记住,PPA提到了Ubuntu版本的制作或多个Ubuntu版本。

    这里的一个例子是Wine PPA支持的版本的图像:

    在此处输入图像描述

    在这里你可以看到自恐龙以来这个PPA是支持的。

    如果PPA维护者倾向于将PPA推向特定包装的最新,最好和最前沿的版本,那么关于如何更新PPA是一件坏事。 不利的一面是,如果你要测试最新的东西,你会发现一些错误。 尝试坚持使用更新为稳定版本的PPA而不是不稳定的测试或开发版本,因为它可能/将包含错误。 拥有最新产品的想法也是TEST,并说出发现了什么问题并解决了问题。 这方面的一个例子是每日Xorg PPA和Daily Mozilla PPA。 如果您获得日报,您将获得X.org或Firefox的每日3次更新。 这是因为那里的工作,如果你使用他们的每日PPA,这意味着你想帮助寻找bug或开发,而不是生产环境。

基本上坚持这3,你会安全的。 一直在寻找PPA的制造商/维护者。 始终查看是否有许多用户使用过它,并始终了解PPA的更新情况。 像OMGUbuntu , Phoronix , Slashdot , The H , WebUp8甚至AskUbuntu这样的地方都是找到许多用户和文章谈论和推荐他们已经测试过的PPA的好资源。

稳定的PPA示例 – LibreOffice,OpenOffice,Banshee,Wine,Kubuntu,Ubuntu,Xubuntu,PlayDeb,GetDeb,VLC都是我经验丰富且安全的PPA。

半稳定PPA -X-Swat PPA是一种处于中间PPA的出血边缘和稳定的。

Bleeding Edge PPA – Xorg-Edgers是一个前沿的PPA,虽然我应该提到在12.04之后,这个PPA变得越来越稳定。 我仍然会将其标记为最前沿,但它对于最终用户来说足够稳定。

可选择的PPA – 手刹提供了一种供用户选择的方式,您想要一个稳定的版本,还是想要前沿(也称为快照)版本。 在这种情况下,您可以选择要使用的内容。

请注意,在使用例如X-Swat ppa与Xorg-Edgers PPA的情况下,您将在两者之间混合(优先考虑Xorg-Edgers)。 这是因为两者都试图包含几乎相同的包,因此它们将相互覆盖,只有最新的包将显示在您的存储库中(除非您手动告诉它从X-Swat中获取包)。

当您将某些包添加到存储库时,某些PPA可能会更新您的某些包,因为它们将使用自己的版本覆盖某个包,以使PPA软件正确地在您的系统上运行。 这可能是一些代码包,python版本等。其他像LibreOffice PPA将从您的系统中删除所有OpenOffice的存在,以在那里安装LibreOffice包。 基本上阅读其他用户对特定软件包的评论,并阅读该软件包是否与您的Ubuntu版本兼容。

正如Jeremy Bicha在下面的评论所暗示的那样,一些前沿(PPA保持最新,包括在PPA中添加Alpha,Beta或RC质量软件)可能会损害整个系统(在最坏的情况下)。 杰里米提到了很多人的例子。

要在启动板上开发PPA,贡献者必须签署ubuntu行为准则 。 这表示开发人员必须遵守最低标准。

通常人们应该咨询ubuntuforums,看看谁使用了特定的ppa,以及是否可能导致任何问题。

对于“新手”或“noob” – 我最好的建议是避免使用PPA,直到您确信自己了解命令行的一些内容,潜在的错误消息以及如何诊断问题。

要删除导致问题的ppa,您大多数时候都可以使用“ ppa_purge ”

如果您感到紧张,请考虑使用clonezilla等工具对计算机进行映像备份。 这样,如果出现问题并且您无法解决问题,至少您可以快速恢复计算机,使其恢复到开始播放之前的状态。

说了这么多,ppa对于获得最新版本的软件非常有用 – 特别是那些不会每6个月尝试升级并坚持使用UTSntu的LTS版本的软件。

正如已经说过的那样,这不仅仅是恶意软件的问题。 还有一些软件可能仍处于测试阶段,尚未准备好用于生产。 如果您安装它并依赖它来完成工作,您可能会发现它有缺陷,不可靠并且可能崩溃 – 让您没有完成的工作。

其中一些也可能与Ubuntu的其他方面(如Unity或Gnome)相处不佳,导致难以追踪的问题,甚至可能使您的系统不稳定。

这不是因为软件很糟糕,而是因为它可能尚未经过全面测试,或者因为它可用,以便人们可以对其进行测试,但尚未打算通常作为生产软件发布。 所以你应该谨慎使用,虽然其中一些非常好。

几个月前,我安装了一个特定PPA推荐的软件包,它破坏了我的系统,我不得不重新安装Ubuntu。 我是一个新用户,不知道还能做什么; 有了更多的知识,我可能已经能够解决问题并在不重新安装的情况下恢复它(虽然这对我学习Ubuntu也很有用,但是如果我在我的机器上保存了工作我会失去它) 。

所以要小心,提出问题,经常备份(!!!),并且知道恶意软件不太可能(尽管不是不可能)。

其他人列出的所有问题都非常重要。 也就是说,由于这是开源的,我们可以准确地告诉PPA从Ubuntu中的软件包版本改变了什么。 我们将使用此副本中的PPA作为示例。

首先,我们将从PPA dget一个工具,该工具将下载Debian源包的所有部分,并提供指向dsc文件的链接:

 dget -u https://launchpad.net/~anton0/+archive/unity/+files/unity_5.12-0ubuntu2~ppa1.dsc 

我点击“查看包裹详细信息”找到该链接:

查看包裹详情

然后:

找到dsc文件

接下来,我们将在Ubuntu存档中获取包的源代码:

 apt-get source unity 

最后,我们将使用debdiff来查看两个包的来源之间的差异:

 debdiff unity_5.12-0ubuntu1.1.dsc unity_5.12-0ubuntu2~ppa1.dsc 

该命令的输出大约有三百行, 所以我将它放在一个pastebin而不是直接放到窗口中。 现在,我无法保证代码有多好,因为我不太了解C ++,但它似乎正在做它声称的而不是任何恶意的东西。

PPA是一个包含您可以安装的软件的Web文件夹。 它真的没有那么复杂。 安装程序包时,使用root权限执行此操作,并且程序包具有运行的脚本,因此它们以root用户身份运行。 这意味着安装任何软件都是危险的,您需要信任开发人员或分销商。

定期轮询apt存档,PPA或其他方式,以便更新已安装的软件。 与之相关的“问题”是,任何人都可以提供您安装的新软件包。 例如,您可以添加PPA以获得一个漂亮的主题和该主题的自动更新。 但是,一旦添加了该存储库,所有者就可以添加修补的openssh-server软件包,它将在Ubuntu中显示为更新。 这可以在您添加PPA一年后完成,因此您需要注意更新。

PPA系统确实可以防止第三方篡改软件包,因此,如果您确实信任开发人员/分销商,那么PPA非常安全。 例如,如果您安装了Google Chrome,那么他们会添加PPA,以便您接收自动更新。 他们添加了“deb http://dl.google.com/linux/chrome/deb/ stable main”。 如果您使用的DNS服务器被黑客攻击,将dl.google.com指向其他位置,那么他们可以将已修补的软件推送到已安装Chrome的所有用户。 但Ubuntu拒绝安装它们,因为它们无法使用Googles私钥进行签名。 因此,在这方面,PPA非常安全。

不可能说PPA是安全的。 这取决于使用它来分发软件的人。 使用免费软件,人们可以查看源代码并查看它是否安全。 当很多人使用存档时,比如Ubuntu常规档案,那么你就可以进行同行评审。 用户很少的小档案没有,所以它们不那么值得信赖。 主要的教训是,无论您使用何种系统,都应该在安装软件时注意。

在Luis Alvarado的回答基础上 ,你应该意识到这些风险:

  • 恶意软件包 – 软件包可能会试图伤害您。 这对他们来说很容易,因为他们可以使用管理权限运行任何代码。
  • 质量差或软件不兼容 – 应用程序可能无法正常工作。 例如,可能会因为干扰其他软件,破坏您的数据或泄露私人信息而意外造成损害。

你应该注意这些因素:

  • 维护者的诚实 – 维护者可能会暗中试图伤害你吗?
  • 维护者的安全性 –维护者是否容易受到第三方的攻击?
  • 维护者的可靠性 – 维护者是否会在合理的时间范围内响应更新需求? 他们是否致力于长期维持PPA?
  • 存储库的安全性 – 维护者签署的包是什么?
  • 软件的性能 – 软件没有错误并且与您的系统兼容?

PPA上的软件包不会检查恶意软件之类的内容。 因此,虽然有人可能会为您打包XBMC之类的东西,但他们也很容易添加一些间谍软件/恶意软件。 这就是为什么你不应该只添加任何随机PPA。

当您添加ppa并通过它安装程序时。

基本上,您允许将该程序驻留在允许的可执行区域(/ bin / / sbin / / usr / bin /)。

现在,如果程序本身是/某种程度上是恶意软件,那么系统不会抱怨它,因为你是加入ppa考虑其值得信赖的人。

当程序来自Ubuntu存储库时,它们首先被检查(我想彻底说,但我不知道:P)所以来自Ubuntu存储库的那些肯定没有恶意软件/间谍软件。

对于任何其他ppa,由您/用户决定是否信任它。