我有一个关于在不同的源 PPA 中拥有相同软件的问题。
假设我添加了一个 PPA 来从某个开发人员那里获取软件。后来,这位开发人员决定将另一个软件的自定义版本添加到他的 PPA 中,而我的电脑上恰好已经有这个软件了。
下次我这样做时sudo apt-get upgrade
,如果版本号高于我的版本,我将收到他的自定义版本。这是一个问题,因为代码可能是恶意的或破坏我的工作流程。总的来说,这将被视为 PPA 劫持。
用外语解释这一点对我来说并不容易,所以我想图表可以帮助直观地了解这个问题。
如果源 PPA 自上次更新/安装以来发生了变化,作为用户,我有什么办法可以阻止从软件接收更新吗?我知道我可以冻结(或固定)某个版本,但这意味着我根本无法获得更新(即使它是合法的),所以它并不能真正解决这个问题。
我尝试在 /r/linux4noobs 上发帖并在 /r/linuxquestions 上交叉发帖,但我并没有得到太多答案。
在我看来,这似乎是一个巨大的安全问题,我很惊讶它没有被更多地提及。不过,我对 Linux 总体上还很陌生,所以我可能不明白这里的一些内容。我思想开放,愿意了解apt
工作原理,所以请随时指出我遗漏的任何东西!
感谢您未来的回答。
答案1
重要的是要理解 PPA 并不旨在实现可信的、广泛的更新分发。
可信的更新分发通常应通过官方 Ubuntu 存储库进行。PPA 虽然由 Canonical 作为公共服务托管,但不是官方 Ubuntu 存储库。
PPA 旨在用于测试和有限分发,它们是 Ubuntu 开发生态系统的重要组成部分。
然而,由于 PPA 是一种自签名免费存储库,因此用户和开发人员都可能滥用它。这里到处都是滥用 PPA 作为唯一来源或升级途径的人的眼泪。
换句话说,使用 PPA 时您会承担风险。
如果您发现开发人员使用 PPA 作为分发已发布(非测试)软件的方法,请鼓励他们将他们的软件贡献给 Debian,以便它可以得到更广泛的分发、社区测试和支持,并能被更多用户发现。
如果您在 Ubuntu 的 LTS 版本上使用 PPA 来获取最新软件,那么请考虑使用 Ubuntu 的“临时”(6 个月)版本之一。它们同样稳定,每个版本都会更新您的整个软件堆栈软件,并且经过此社区的测试和支持。