在最近安装的 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 的回答以及我在几个系统中尝试过的方法,
dpkg --get-selections | wc -l
给出NF激酶。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 会将deb
和snap
软件包都计入同一行 - 因此如果你安装了 8 个 snap,deb
那么这个是匹配的。但由于上述原因,软件包仍然相差甚远 - 在我看来,正因为如此两个数字都不正确(如果您想要计算已安装的软件包数量)。
对于 Gnome 版本号,不同的脚本以不同的方式查找版本号:
- Screenfetch 检查
$XDG_CURRENT_DESKTOP
- Neofetch 检查
gnome-shell --version
Neofetch 报告的版本应该是“最”正确的版本(感谢 Rinzwind)。
经核实Ubuntu 22.04 DE 是一个“FrankenGnome”,混合了版本 41 和 42 组件 - 这大概就是它返回这些不同数字的原因。
希望这仍然有帮助。