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

jco*_*ora 6 distros fedora free-software package-management

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

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

我想在 Fedora 上使用这个功能,但最好能在大多数发行版上使用。

gol*_*cks 3

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

我想要 Fedora 上有这个功能

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

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

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

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

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

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

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

  • @Yannbane 如果他们有一个明确的、维护的“二进制固件”列表,那就太好了。我想如果你很好地询问合适的人,他们可能会有答案 - 为此我在这里开始了一个帖子:http://www.forums.fedoraforum.org/showthread.php?p=1660611#post1660611 阅读该内容“ Forbidden Items”页面进一步指出,Fedora 明确不包含专有内核模块(我猜,除非您从非自由存储库获取了它们)。 (2认同)