如何列出在Ubuntu中手动安装的软件包?[重复]


8

可能重复:
如何跟踪Ubuntu(Linux)上安装了哪些软件包?

你好,

我正在apt-get installPC上安装各种软件。我有少数几台需要在其上安装相同软件包的PC。我如何获取通过安装的软件的列表以及安装apt-get install软件包的顺序。好的,顺序并不是那么重要,因为程序包管理器可以解决依赖性...我想创建一个脚本,该脚本一旦运行即可在其他PC上安装所有需要的软件。所有这些PC都是Ubuntu的默认安装。显然,软件包列表中不能包含通过默认安装安装的所有软件包:)

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



确实,重复者接受的答案回答了这个问题的两个部分。
quack quixote 2010年

Answers:


2

您可以使用以下命令在旧计算机上保存已安装软件包的列表,dpkg --get-selections > ~/packages然后使用来将其还原到新计算机上sudo dpkg --set-selections < ~/packages && apt-get dselect-upgrade

您不必担心默认安装中已经包含很多东西,apt-get将为您提供一切服务。

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


1
要将它们组合在一起,您可以编写类似cat file1 file2 file3 | sort | uniq > outputfile
davr 2010年

12

aptitude 可以做您正在寻找的事情,实际上还有更多。

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

或更短:

aptitude search '~i!~M'

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

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

您可以查看搜索模式参考,几乎没有任何标准可以搜索。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.