用于获取类似于 Ubuntu 软件中心的(短)已安装应用程序列表的脚本?

use*_*807 5 scripts

我将如何编写脚本以获取与 Ubuntu 软件中心报告的相同的已安装软件列表?

我能找到的每个参考资料都提到了 dpkg -l 或 rpm -qa(或其某些变体),但这些通常包括每个最后一个包和库以及诸如此类的东西,最终会得到一个包含 1000 多个条目的列表。

然而,Ubuntu 软件中心应用程序显示了大量简洁(且人性化)的列表——目前我的 Ubuntu 盒子上有 67 个项目。这是我感兴趣的那种列表。任何人都可以向我指出可以获得类似内容的脚本吗?最好是可以在其他发行版上运行的东西,但我会接受我能得到的任何东西。

谢谢。

小智 1

可能仍然不是您要寻找的...

dpkg --get-selections
Run Code Online (Sandbox Code Playgroud)

如果没有(我还不能发表评论),请运行以下命令并让我知道数字(仅计算行数。

dpkg --get-selections | wc -l
Run Code Online (Sandbox Code Playgroud)


Egi*_*gil 1

您可以从登录中获取数据/var/log/apt。随着日志的轮转,其中大部分都会被压缩。首先,我们将当前日志与压缩日志结合起来,然后提取所有已安装的软件包,但不会自动提取。这只是我的反复试验,所以可能可以稍微清理一下。

cd /var/log/apt   
sudo -s
cat history.log > allhistory
zcat history.log*gz >> allhistory.log
cat allhistory.log | grep Install | sed s/Install://g | tr ')' '\n' | grep -v automatic | sed s/,//g | sed s/:.*$//g | sort -u | grep -v "^$"
Run Code Online (Sandbox Code Playgroud)