screenfetch 与 neofetch 的区别

screenfetch 与 neofetch 的区别

在最近安装的 Ubuntu 22 中,我发现输出之间存在细微差异。我在此仅报告有意义的差异:1) 软件包数量,2) DE 版本。

$ neofetch 
Packages: 2685 (dpkg), 9 (snap)
DE: GNOME 42.2

$ screenfetch
Packages: 2693
DE: GNOME 41.7

可能的原因是什么? (哪一个是正确的?)

编辑:包裹数量有 3 个数字:1。NF激酶= 2685,NF-卡扣= 9,旧金山= 2693. 根据 Artur Meinild 的回答以及我在几个系统中尝试过的方法,

  1. dpkg --get-selections | wc -l给出NF激酶
  2. dpkg --get-selections | grep "[[:space:]]install" | wc -l可能会给出低于两者的数字NF激酶旧金山

答案1

我在这里猜测了一点(因为我没有时间去研究每个应用程序的源代码)。

我发现 Neofetch 包编号与该命令匹配:

dpkg --get-selections | wc -l

然而,我认为这是错误的,因为这列出了已安装和未安装的包(这不是我想要的)。

因此我创建了自己的命令来正确列出仍然安装的软件包:

dpkg --get-selections | grep "[[:space:]]install" | wc -l

这只给了我已安装软件包的正确数量(这明显低于 Neofetch 的默认数量 - 每次安装新内核时都会增加,因为旧内核已被卸载,但仍由 Neofetch 计算)。

对于您看到的软件包编号,情况是这样的:Neofetch 还报告了错误的 snap 软件包数量(+1 因为我相信他们忘记删除标题 - 可以通过运行来验证snap list) - 所以如果我没记错的话,您安装的 snap 软件包的正确数量是 8 个。

然后我相信 Screenfetch 会将debsnap软件包都计入同一行 - 因此如果你安装了 8 个 snap,deb那么这个是匹配的。但由于上述原因,软件包仍然相差甚远 - 在我看来,正因为如此两个数字都不正确(如果您想要计算已安装的软件包数量)。

对于 Gnome 版本号,不同的脚本以不同的方式查找版本号:

  • Screenfetch 检查$XDG_CURRENT_DESKTOP
  • Neofetch 检查gnome-shell --version

Neofetch 报告的版本应该是“最”正确的版本(感谢 Rinzwind)。

经核实Ubuntu 22.04 DE 是一个“FrankenGnome”,混合了版本 41 和 42 组件 - 这大概就是它返回这些不同数字的原因。

希望这仍然有帮助。

相关内容