如何查看手动安装的软件包列表,而不包括它们的依赖项。

如何查看我手动安装的软件包列表(真正手动,即我自己输入的)?
我想排除那些作为其他我手动输入的软件包的依赖而安装的软件包。
例如,如果我运行了以下命令:
sudo apt-get install mysql-server

结果是安装了mysql-common,我只想在列表中看到mysql-server而不是mysql-common。
我已经搜索了答案,找到了很多接近但不完全符合我的要求的答案。

https://askubuntu.com/a/880805 - Vlad Didenko
3个回答

使用apt-mark工具会更好:
apt-mark showmanual

这正是你想要的。你还可以将软件包标记为手动安装或非手动安装,并保持软件包在固定版本上。

1这显示了手动安装的软件包以及安装的依赖项。 - To Do
这应该是被接受的答案。 - geotheory
3@ToDo,是吗?还是它列出了在操作系统安装过程中“手动”安装的软件包?我看到了很多我没有明确安装的软件包,但当我安装操作系统时,我以为它们是“手动”安装的。 - João M. S. Silva

那就是你想要的:

cat /var/log/apt/history.log | grep -E 'apt(-get)? install '

这是一个非常聪明的回答。唯一的缺点是由于日志轮转,历史记录有限。如果您还能检索存档日志并提取其中的日志条目,这个解决方案将更加健壮。话虽如此,您的想法听起来很棒。谢谢。 - user92125
为了适应日志轮转,您可以搜索旧的日志文件。使用命令$ zcat /var/log/apt/history.log.*.gz | grep 'apt-get install' - kaapstorm
zcat /var/log/apt/history.log.*.gz | grep 'apt-get install' 给了我一个我安装的东西列表,但肯定不是全部列表。 - To Do
或者,如果你使用apt来安装东西:cat /var/log/apt/history.log | grep 'apt install ' - nnyby