我想获取我使用安装的软件包的列表apt-get
。
即自我的 Linode (Debian) 最初创建以来我安装的所有软件包。
这可能吗?
答案1
您可以apt
使用以下命令列出已安装的软件包:
apt --installed list
编辑
使用以下命令列出已安装的软件包apt-get
:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline: apt-get install (?!.*--reinstall)\K.*'
答案2
如果您只想显示您拥有的软件包的列表手动安装你可以运行:
apt --installed list | grep -v automatic
不列出标记为自动安装的软件包
-v, --invert-match Invert the sense of matching, to select non-matching lines.
另一个不会错误地排除名称中带有“automatic”的不幸包的选项是:
apt-mark showmanual
答案3
zgrep -h ' install ' /var/log/dpkg.log* | sort | awk '{print $4}'
这将为您提供已安装的软件包列表(按安装顺序排列)。
根据我的评论,/var/log/dpkg.log*
默认情况下仅保留最近 12 个月的文件。要更改此设置,请编辑/etc/logrotate.d/dpkg
.例如,更改rotate 12
为rotate 1200
保留最后 1200 个月(100 年)的价值 - 永久有效,永远不要删除旧日志。
顺便说一句,如果您想查看软件包何时升级,请更改install
为upgrade
.例如
zgrep -h ' upgrade ' /var/log/dpkg.log* | sort
remove
和也一样purge
。
答案4
用于dpkg
列出系统上安装的所有软件包:dpkg --get-selections
要列出使用apt-get
查看安装的所有软件包/var/log/apt/history.log
。此日志还包含您已删除的软件包。您可以grep
查找以 开头的行Install:
。