问题描述
我看到很多有趣的程序,只能通过在系统中添加”PPA”获得,但如果我理解正确,我们应该保留在官方”repositories”中,以便将软件添加到我们的系统中。
新手是否有任何方法知道”PPA”是安全的还是应该避免的?用户在处理PPA时应该知道哪些提示?
最佳解决思路
PPA(Personal Package Archive)用于在您的Ubuntu,Kubuntu或任何其他PPA兼容发行版中包含特定软件。 PPA的”safeness”主要取决于3件事情:
-
谁做PPA – 来自WINE或LibreOffice的官方PPA,比如ppa:libreoffice /ppa和我自己创建的PPA不一样。你不知道我是PPA维护者,所以信任问题和安全性对我来说是非常低的(因为我可能已经制造了一个损坏的软件包,不兼容的软件包或其他任何不好的东西),但是对于LibreOffice和他们在其网站中提供的PPA ,这给了它一定的安全网。因此,根据谁做PPA,他/她已经制作和维护PPA的时间会影响PPA对您的安全程度。在评论中提到的PPA没有经过Canonical认证。
-
有多少用户使用过PPA – 例如,我的个人PPA中有来自http://winehq.org的PPA。你是否会信任我,我有10个用户确认使用我的PPA,其中有6个用户说它比Scott Ritchie在官方winehq网站上提供的ppa:ubuntu-wine /ppa更糟糕。它有成千上万的用户(包括我)使用他的PPA并信任他的工作。这是几年后的工作。
-
如何更新PPA – 假设您使用的是Ubuntu 10.04或10.10,并且您想使用该特殊的PPA。你发现那个PPA的最后一次更新是20年前.. O.o.您使用THAT PPA的机会为空。为什么?。由于PPA需要的软件包依赖关系非常陈旧,并且可能更新的软件包会更改很多代码,以至于无法与PPA一起使用,并且如果将任何PPA软件包安装到系统中,可能会损坏系统。如果他/她想使用该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和每日Mozilla PPA。如果您收到日报,您将获得每天3次的X.org或Firefox更新。这是因为在那里投入的工作,如果你使用他们的每日PPA,这意味着你想帮助错误狩猎或开发,而不是生产环境。
基本上坚持这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。
出血边PPA – Xorg-Edgers是一种出血性PPA,尽管我应该提到在12.04之后,这种PPA变得越来越稳定。我仍然会将它标记为流血的边,但它对于最终用户来说足够稳定。
可选择的PPA – 手刹提供here供用户选择的方式,你想要一个稳定的版本还是想要出血的边(也称为快照)版本。在这种情况下,您可以选择要使用的内容。
请注意,在使用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 code of conduct。这意味着开发者必须遵守一套最低标准。
通常人们应该咨询ubuntuforums看看谁使用了特定的ppa,以及他们是否可能导致任何问题。
对于”novice”或”noob”-我最好的建议是避开PPA,直到您确信自己了解了有关命令行,潜在错误消息和一些如何诊断问题的内容。
要删除ppa导致的问题,您大多数时候可以使用“ppa_purge”
如果您感到紧张,请使用clonezilla这样的工具来考虑计算机的映像备份。这样,如果出现问题,而且无法解决问题,至少您有一种快速方法可以让您的电脑恢复到开始播放之前的状态。
说了这么多,ppa对于获取最新版本的软件非常有用 – 特别是那些不试图每6个月升级一次并坚持使用LTS版本的ubuntu的人。
第三种解决思路
正如前面所说,这不仅仅是恶意软件的问题。还有一些软件可能还处于测试阶段,尚未准备好用于生产。如果你安装它并依靠它来完成工作,你可能会发现它有问题,不可靠,并且可能会崩溃 – 让你没有完成你所做的工作。
其中一些可能与Ubuntu的其他方面(例如Unity或Gnome)相处得不好,导致难以追踪的问题,甚至可能导致系统不稳定。
这并不是因为软件不好,而是因为它可能还没有经过全面测试,或者是因为软件已经可用,所以人们可以对其进行测试,但尚未打算普遍作为生产软件发布。所以你应该谨慎行事,虽然其中一些非常好。
几个月前,我从一个特定的PPA安装了一个推荐的软件包,它足以让我不得不重新安装Ubuntu。我是一个新用户,不知道还有什么要做;多一些知识,我可能已经能够解决问题并在不重新安装的情况下恢复它(尽管这对我学习Ubuntu也很有用,但如果我已经在我的机器上保存了,我会丢失它) 。
所以要小心,提出问题,频繁备份(!!!),并知道恶意软件不太可能(尽管不是不可能)。
第四种思路
他人列出的所有问题都非常重要。也就是说,由于这是开源的,我们可以确切地知道PPA从Ubuntu的软件包版本中已经发生了什么变化。我们将使用this duplicate中的PPA作为示例。
首先,我们将从PPA dget
抓取源代码,该工具将下载所有Debian源代码包,并给出dsc
文件的链接:
dget -u https://launchpad.net/~anton0/+archive/unity/+files/unity_5.12-0ubuntu2~ppa1.dsc
我通过点击“查看包裹细节”找到了链接:
接着:
接下来,我们将在Ubuntu存档中获取该软件包的源代码:
apt-get source unity
最后,我们将使用debdiff
来查看两个包的来源之间的区别:
debdiff unity_5.12-0ubuntu1.1.dsc unity_5.12-0ubuntu2~ppa1.dsc
该命令的输出大约有三百行,so I’ll put it on a pastebin而不是直接进入窗口。现在,我不能保证代码有多好,因为我不太了解C++,但它似乎在做它声称的东西,而不是任何恶意的东西。
第五种思路
PPA是一个包含可安装软件的Web文件夹。它并不比那复杂得多。当你安装一个软件包时,你使用root权限来执行这个软件包,并且这个软件包有脚本运行,所以它们以root身份运行。这意味着安装任何软件都是危险的,您需要信任开发人员或分销商。
定期查询apt档案,PPA或其他文件,以更新您安装的软件。 “problem”就是这样的,任何人都可以提供你安装的新软件包。例如,您可以添加一个PPA以获得一个漂亮的主题并自动更新该主题。但是,一旦添加了该存储库,所有者就可以添加修补的openssh-server软件包,并且它将在Ubuntu中显示为更新。这可以在添加PPA一年后完成,因此您需要注意更新。
PPA系统确实可以防止third-parties篡改软件包,但是,如果您信任开发者/分销商,那么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’s answer,您应该意识到这些风险:
-
恶意软件包 – 软件包可能会试图伤害你。这对他们来说很简单,因为他们可以使用管理权限运行任何代码。
-
质量差或软件不兼容 – 应用程序可能无法正常工作。例如,它可能会由于干扰其他软件,破坏您的数据或泄露私人信息而意外造成损害。
你应该注意这些因素:
-
维护者的诚实 – 维护者可能会暗中试图伤害你?
-
维护者的安全 – 维护者是否容易受到第三方的攻击?
-
维护人员的可靠性 – 维护人员是否会在合理的时间内响应更新需求?他们是否致力于维护long-term中的PPA?
-
存储库的安全性 – 维护人员是否签名包?
-
软件性能 – 软件bug-free是否与您的系统兼容?
第七种思路
PPA’s aren’t上的软件包检查是否存在恶意软件。因此,尽管有人可能会为您打包XBMC之类的东西,但他们也很容易也会添加一些间谍软件/恶意软件。这就是为什么你不应该只添加任何随机PPA。
第八种思路
当你添加ppa并通过它安装一个程序。
基本上,您允许将该程序驻留在允许的可执行区域(/bin //sbin //usr /bin /)中。
现在,如果程序本身具有某种恶意软件,那么系统不会抱怨它,因为您是考虑其可信赖性的人加入ppa的人。
当程序来自Ubuntu软件仓库时,他们首先被检查(我想说的很透彻,但我不知道:P),所以来自Ubuntu软件仓库的那些人肯定没有恶意软件/间谍软件。
对于任何其他ppa,由您/用户决定是否信任它或否。