如何获取由用户而不是依赖项使用 apt-get 安装的软件包的列表?

如何获取由用户而不是依赖项使用 apt-get 安装的软件包的列表?

假设我正在运行一个基于 Debian 的发行版,我想知道我运行了哪些软件包apt-get install <package-name>来安装,但我不想包含任何在我使用以下命令安装另一个软件包时作为依赖项自动安装的软件包apt-get install <package-name>...有办法找到这个吗?

我的猜测是没有办法,因为apt并且dpkg可能无法区分两者,但如果可能的话,我希望被证明是错误的。

答案1

作为依赖项安装的包被标记为自动安装。您可以使用以下命令查看和操作这些标记apt-mark

apt-mark showmanual

将列出未标记为自动安装的软件包,IE显式安装的软件包。

答案2

这些命令可能会帮助您简化工作,我会尝试以下命令:

cat /var/log/apt/history.log | grep 'apt-get install '

下面两条命令:

apt-mark showmanual

dpkg --get-selections

不是 100% 完成该任务并找出哪些是由用户安装的、哪些是作为依赖项安装或自动安装的方法,但第一个命令可能会有点帮助。

重要说明,如果您正在运行 logrotate 实用程序,则必须使用以下命令

zgrep 'apt-get install' /var/log/apt/history* --color

相关内容