仅列出用户使用 apt(或其他 pkg man)专门安装的软件包。不包含依赖项和默认软件包。不使用历史记录

仅列出用户使用 apt(或其他 pkg man)专门安装的软件包。不包含依赖项和默认软件包。不使用历史记录

所以基本上只有诸如等等命令中提到的那些sudo apt install X……

我还没有看到任何关于此的帖子。只有关于系统上所有已安装的软件包,无论它们是依赖项还是实际由我安装的。

因此,如果我只安装了一个包:

user@host 31/12/2019 00:33:15 :/sys/class/power_supply $ sai tlp
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  ethtool tlp-rdw

我只想得到tlp而不是ethtool tlp-rdw

PS:我正在寻找一种不需要使用 bash 历史记录的解决方案。(原因:超出历史记录限制 | 多个会话相互覆盖 | 旧机器 | 朋友电脑 | 等等......)

答案1

在 bash shell 中运行以下命令列出所有手动安装的包:

comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)  

此命令与使用 apt 包管理器的操作系统兼容。在问题的第一句中你提到sudo apt install。我假设你的操作系统使用 apt,因此上述命令将在其上成功运行。

此命令可用于准备手动安装的软件包列表,以便 apt 在另一台计算机上安装。在将手动安装的软件包列表安装到另一台计算机上之前,最好先查看列表并从列表中删除已安装但使用不多的软件包,尤其是占用大量磁盘空间的大型软件包。

相关内容