我将如何编写脚本以获取与 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)
您可以从登录中获取数据/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)