我想使用 PPA 中的最新软件包。如何确保 PPA 维护者没有在提供的版本中添加任何恶意代码?
答案1
- 安装该
devscripts
包。 - 转到 PPA 页面并找到与您感兴趣的包相关的源包文件。找到以 结尾的文件
.dsc
。 - 运行命令。这将下载并解压用于构建包的源代码到一个目录中。将此目录重命名为。
dget url_of_dsc_file
ppa
- 获取原始源代码以与 PPA 进行比较。这可能是来自项目网站的原始上游 tarball,与您正在使用的版本相对应,也可能是软件包的最新官方 Ubuntu 版本(您可以从 找到后者的链接
.dsc
)。下载并解压此文件,然后将此目录重命名为,如果需要,使用从 下载。https://launchpad.net/ubuntu/+source/source_package_name
upstream
dget
.dsc
- 现在比较
upstream
和ppa
目录,看看是否引入了在中ppa
不存在的恶意更改upstream
。您可以使用 meld 来实现此目的,它是一个图形化的差异查看器。apt-get install meld
,然后运行meld upstream ppa
。它将向您显示哪些文件是新的、已更改的或已删除的,您可以双击文件以易于查看的格式查看详细的更改。
由于 PPA 是在 Canonical 基础设施上从源代码构建的,因此您可以相信从 PPA 安装的二进制文件与您如上所述审查的源代码相匹配,前提是您信任 Canonical。鉴于您首先信任 Canonical 构建 Ubuntu,这应该是可以接受的。
答案2
你确实无法确定 PPA 提供的包中没有恶意软件,但你至少可以检查源代码是否被篡改:
- 从 PPA 页面下载软件包
orig.tar.*
文件并解压 - 然后从项目网站下载并解压相同版本的程序
- 跑步
diff -r orig-dir/ ppa-dir/
两个源代码树应该完全相同。如果不一致,您可以仔细检查差异,确保它们不是恶意的。
您还需要检查包装本身。Debian 软件包可能包含源代码树的补丁,并且可能添加其他代码。
Debian 软件包(.deb)可以像这样解压:
ar p mypackage.deb data.tar.gz | tar zx