如何列出 Ubuntu 中手动安装的软件包?

如何列出 Ubuntu 中手动安装的软件包?

可能重复:
如何追踪在 Ubuntu(Linux)上安装的软件包?

你好,

我用它apt-get install来在 PC 上安装各种软件。我有几台 PC,它们都需要安装相同的软件包。我如何获取通过安装的软件列表apt-get install以及安装软件包的顺序。好吧,顺序并不那么重要,因为包管理器会解决依赖关系...我想创建一个脚本,一旦运行,就会在其他 PC 上安装所有需要的软件。所有这些 PC 都是 Ubuntu 默认安装。很明显,软件包列表不能包括通过默认安装安装的所有软件包 :)

此外,如果可能的话,该列表不应包含通过synaptic或安装的软件dpkg

答案1

您可以使用命令在旧机器上保存已安装软件包的列表dpkg --get-selections > ~/packages,然后使用在新机器上恢复它sudo dpkg --set-selections < ~/packages && apt-get dselect-upgrade

您不必担心默认安装已经包含大量内容,apt-get 将为您处理一切。

您最终会得到几个名为 的文本文件,packages其中列出了每台机器上需要安装的软件包。如果您愿意,可以将所有这些文件加在一起,然后使用 删除重复项uniq,这意味着您将有一组要安装的软件包,而不是每台机器一组。

答案2

aptitude实际上,可以做你想做的事情,甚至更多。

aptitude search '?installed ?not(?automatic)'

或者更短:

aptitude search '~i!~M'

将列出所有手动安装的软件包。不会列出任何依赖软件包(即自动安装的 mysql-data 或 *-common)。

如果您只想要包名称,请使用-F '%p'参数。

您可以查看搜索模式参考,几乎没有它不能搜索到的标准。

相关内容