(如果您发现我的英语有任何错误,请原谅并纠正)
我知道还有一个问题:“如何列出所有已安装的程序?”然而,Linux mint 上有很多程序,我只想知道我安装了哪些程序,因为我不想存储我不再使用的程序。
如果可能,如何列出给定日期以来所有已安装的程序?
编辑:在 Windows 中,您只需转到控制面板 -> 程序 -> 卸载程序,Windows 就会显示当前安装的所有程序。
另一种可能的方法是打开“Program Files”或“Program Files (x86)”并将所有文件夹签入其中。我的问题是,我怎样才能在Linux中做类似的事情?我认为最好的解决方案是列出 $PATH 上可用的所有二进制文件,按日期排序并检查在我的计算机中安装 Linux 的那天之后添加的所有二进制文件,或者键入以下命令:“history | grep install”。我的问题是,是否有另一种方法可以减少出错(您可以使用 Synaptic 安装程序,但“history | grep install”无法工作,另一方面,某些二进制文件可能没有正确设置日期(不太可能发生的事件))。
我希望你能明白我想要什么
编辑2:这个答案回答了我的问题: https://unix.stackexchange.com/a/21057/203214
通常无法列出手动安装的程序及其组件。如果您不使用包管理器,则不会在任何地方记录此信息。您所能做的就是在标准位置找到二进制文件(就像克里斯建议的那样),并以类似的方式猜测一些库或一些手册页等来自哪里。这就是为什么只要有可能,您应该始终使用包管理器来安装程序。
如果 Linux 开发者将来允许用户这样做就好了……
不管怎样,谢谢大家的回答:)
答案1
查看/var/log/dpkg.log
但最好使用德博芬用于查找不必要的包。
描述 deborphan 查找没有依赖于它们的包的包。默认操作是仅在 libs 和 oldlibs 部分中搜索以查找未使用的库。
答案2
您没有提到您正在使用哪个发行版,但是在centOS
或者Fedora
您可以这样做:
rpm --query --all --last
,
否则Debian
你Ubuntu
不会得到“干净”的答案。
一种方法是查看dpkg.log
文件,例如当前日志:
grep " install " /var/log/dpkg.log
,
这是之前的日志:
grep " install " /var/log/dpkg.log.1
并归档日志:
zgrep " install " /var/log/dpkg.log.2.gz
对于每个归档日志文件依此类推。
答案3
既然你提到了这个问题你肯定已经知道它的答案,但我不确定你真正想要什么。
我不想存储不再使用的程序。
据我所知,所有发行版的软件都是以软件包形式提供的,如果您不需要软件包,则必须通过发行版软件管理器将其卸载。但是,其他包可能依赖于它,在这种情况下,大多数包管理器不会让您删除它。
如果您想要删除属于原则上要保留的程序包一部分的软件,但又想删除其中的一部分:这通常既不符合预期也不受支持。也不推荐。您必须手动执行此操作。需要记住的事情:更新相关软件包后,完整内容将被恢复,包括您手动删除的内容;与包修复相同。此外,如果您从未想到过的某些其他系统工具 xyz 依赖于您要删除的内容,那么它就会崩溃;在最坏的情况下,你最终会在这里问这样的问题为什么 xyz 不起作用,以前可以用这可能会因为偏离主题而被关闭。因此,如果这这就是你的想法——请不要这么做。省去你自己的麻烦,也省去我们一个无法回答的问题。