我尝试过 Red Hat、Ubuntu、Kali Linux。在研究它们的过程中,我寻找了 Linux 发行版之间的差异。我得到的一件事是差异包管理,(.rpm 和 .deb)。但我认为这不仅仅是区别。
其次,在 Kali Linux 上尝试一些命令(如quotacheck
)时,它没有给出任何结果。那么我如何知道哪个发行版支持哪些命令以及如何启用它们?
第三,我了解到 Kali OS 是基于 Debian 的。那么什么是基于实际意思?
答案1
比较发行版
我首先在维基百科页面上比较 Linux 发行版,标题为:Linux 发行版比较。发行表是比较 Linux 发行版的另一个很好的资源。
Digital Inspiration 网站也有一篇很好的文章,标题为:哪个是最适合您桌面的 Linux 发行版?其中包含显示每个发行版的主要目标受众的宝贵信息。
基于?
“基于”一词正如其名称所示。 Linux 发行版的设置和维护可能很复杂。很多时候,人们希望借鉴现有发行版的核心内容,并将其用作自己发行版的基础,只更改他们真正关心的部分。
Debian、Ubuntu 和 Linux Mint 就是很好的例子。 Debian 发行版是一个相当古老且广泛的发行版。因此它有很多可用的架构和包。
因此,Ubuntu 发行版以 Debian 为核心并对其进行扩展,改变了桌面等。 Linux Mint项目以Ubuntu为核心,并在Ubuntu的基础上进一步扩展,再次改变了桌面、文件浏览器等。
这样做的真正优点是每个“子”发行版都能够利用其“父”或“祖父母”发行版。
包裹?
据我所知,系统地查找各个发行版的软件包几乎是不可能的。这个网站已被证明对查看大多数大型发行版中可用的软件包很有用。该网站名为pkgs.org。
答案2
包管理器
有关包管理器之间差异的信息,我建议您查看吃豆人罗塞塔。此页面面向 Pacman,架构Linux的包管理器,但它也可以有效地指出其他几个主要包管理器之间的差异。
在 Pacman Rosetta 中,查看“显示提供给定 exp 的包...”的条目,其中提供的命令对于确定哪些包提供哪些命令很有用。
差异
每个发行版都会做出自己的小选择。这些小选择加起来就会在发行版之间产生大量差异。以下是一些我熟悉的例子:
Arch Linux 的默认 Python 版本是 3。许多其他发行版仍然使用 Python 2。
每个发行版都会选择一个默认值初始化系统。 Arch 使用 Systemd。 斯莱克软件,德班, 和 红帽使用 SysV 初始化脚本。 Ubuntu 使用 Upstart。
分布有不同的解释 FHS。 Arch Linux 有一个可执行文件的默认目录。
/bin
、/sbin
、 和/usr/local/bin
是到 的符号链接/usr/bin
。其他发行版为这些位置中的每一个分配了不同的含义。
卡利语
卡利Linux在 Debian 之上添加了许多软件包。它基本上只是 Debian 加上一套用于渗透测试的工具。
卡利坚持认为它自己的包存储库。主 (http) 存储库中的软件包是从 Debian 中提取的。安全存储库中的包由 Kali 维护和提供。 Kali 还附带了一个 Linux 内核版本,其中包含无线驱动程序注入补丁。
家庭
如果一个发行版基于另一个发行版,它往往会在其自身与其父发行版之间保持一定的一致性。如果 Debian 开始使用 Systemd,Kali 也会(出于近乎必要和愿望)开始使用 Systemd。如果 Kali 不遵循 Debian,它将无法使用 Debian 的软件包。这一切都回到了我上面提到的各种微小差异。
某些子发行版与其父发行版的差异比其他发行版更大。例如,Ubuntu 是基于 Debian 的。它最初是 Debian,并在其基础上进行了更改。现在 Ubuntu 与 Debian 有很大不同。另一方面,有一个基于 Arch 的小型渗透测试发行版,称为黑拱门(免责声明:我与它有联系,这是一个无耻的插件)基本上只是 Arch 加上一套渗透测试工具。在某些情况下,我们甚至不称 BlackArch 为自己的发行版。