是否可以列出 Linux 从启动到当前时间使用的所有软件包?我正在制作一个应用程序系统,我考虑删除所有不必要的软件包来运行该应用程序。如果它很重要 - 我使用 systemd 和 apt。
答案1
您可以通过查找自系统启动以来访问过的文件来执行此操作:
find / -xdev -anewer /proc/version -type f
您需要根据需要添加安装点;例如如果/usr
是单独的文件系统,则运行find / /usr -xdev ...
.
后处理将允许您确定所涉及的包;既然您正在使用apt
,我们会问dpkg
:
find / -xdev -anewer /proc/version -type f -print0 2>/dev/null | xargs -0 dpkg -S | cut -d: -f1 | sort -u
您可以使用以下方式获取此信息的子集popularity-contest
:看按上次运行时间列出软件包?了解详情。
我强烈建议为您的应用程序生成一个最小的包,以便可以识别其依赖项;这将有助于避免升级问题。包装不必太复杂;看Vincent Bernat 的实用 Debian 打包指南开始。 (一个主要好处是打包工具将为您确定库要求并确定相应的依赖项。)