如何检查我是否安装了非自由软件?

如何检查我是否安装了非自由软件?

我正在考虑一个程序,它可以扫描软件包并报告有关它们的一些统计信息 - 并报告所有包含非自由软件的软件包。

当然,它必须包括内核模块、驱动程序和发行版中通常允许的其他二进制 blob。搜索范围越广越好。

我希望在 Fedora 上使用此功能,但最好能在大多数发行版上使用。

答案1

这是一种间接的答案,因为我不明白为什么你的系统上会有非自由软件而不知道它。这并不是说您想要检查是错误的,但也许首先您需要停下来思考是否真的需要这样做。

我想要 Fedora 上有这个功能

Fedora 存储库分为“免费”和“非免费”。默认情况下,仅使用免费存储库。因此,如果您从未添加过任何其他存储库,则yum无法从其中安装任何内容。

当然,它必须包括内核模块、驱动程序和发行版中通常允许的其他二进制 blob。

这一页。 Fedora 唯一的例外是“二进制固件”,除非您使用某些硬件,否则不需要它。我想你也会知道这一点,但我不能保证。

我相信“固件”从技术上讲是安装到设备上的,而且从技术上讲它已经存在了。例如,您的 BIOS 运行非自由软件。在那个层面上你无能为力。您还可以通过该页面上的链接阅读 fedora 对“二进制固件”的讨论。

内核本身不能包含非自由代码,它只能出现在模块中。如果您从 kernel.org 下载源代码并编译自己的源代码,我认为它不包含此类内容,因为莱纳斯的态度(“我有点接受它们,但我从不支持它们并且我不喜欢它们”)意味着允许使用非自由模块内核,但不太可能由 Linux 本身(即 kernel.org)分发。专有驱动程序独立分发;然后发行版包含它们,而不是 kernel.org(但是,根据“禁止项目”页面,fedora 明确不包含专有驱动程序,至少在默认的“免费”存储库中)。

您可以在线调查 列出的所有内容lsmod。由于任何二进制 blob 都必须是一个模块,因此我认为您可以在其中找到它。

Fedora 建议,如果您想构建自己的内核,请使用它们的源代码包。然而,我多年来一直在 fedora 上使用来自 vanilla kernel.org 来源的手卷内核,从未遇到过问题。因此,如果您愿意这样做并且不使用非免费存储库,则不应安装任何非免费内容。

答案2

无论内核和模块

包裹分拣:

这是在 Mageia/Redhat 等系统下测试的

1.从所有包中获取所有已使用的许可证。

rpm -qia | grep "License" | sort

2.了解哪些许可证不符合您的需求

3.找出哪些软件包正在使用有问题的许可证

rpm -qia | grep ": Problematic License" -A 15 -B 20

注意事项:

vrms(适用于 debian)和其他类似的工具在理论上很好,但是当它落实到现实时它们毫无用处,如果您是安全/隐私专业人士,您必须亲自检查所有内容

笔记2 :

如今,很难获得一个完全开放的系统,尊重隐私等,但仍然是可能的,您将需要:

  • 具有开源 BIOS 的机器 *

  • 获取一个不错的发行版,例如 mageia 等

  • 检查所有包和模块

  • 编译自己的内核

注意 * 带有开源 BIOS 的机器并不存在于大众市场,但仍然感谢上帝,我们仍然可以在上面运行开源 BIOS兼容大众市场机器通过刷新本机 BIOS。

最后一个剩下的问题是机器芯片上编程的闭源微代码,我们对此无能为力,因为只有大型商业公司正在制造硬件,我们可以使用一些软件解决方案来检查它们在流程上的功能(这不是一个简单的解决方案)任务)。

您可能会对这个相关的内核工具感兴趣

http://tomoyo.osdn.jp/

http://akari.osdn.jp/

相关内容