apt如何列出所有已经安装的软件包

问题:

  我想将所有已安装软件包的列表输出到一个文本文件中,这样我可以查看它,并且在另一个系统上进行批量安装,我该怎么做?

  回答 1:

Ubuntu 14.04和更高版本的apt工具使得这非常容易。

apt list --installed

旧版本

  要获取在本地安装的软件包列表,请在你的终端中执行这个操作:

dpkg --get-selections | grep -v deinstall

(-v标记"反转"grep返回不匹配行)

  要获取安装的特定软件包的列表:

dpkg --get-selections | grep postgres

要将列表保存到你的桌面上名为packages的文本文件里,请在你的终端中执行这个操作 :

dpkg --get-selections | grep -v deinstall > ~/Desktop/packages

  或者,只需使用

dpkg -l

(你不需要作为超级用户运行命令,所以不需要sudo),

  回答 2:

  要获得明确安装的(不只是安装为依赖项)包,你可以运行,

aptitude search '~i!~M'

然而另一个方法是复制文件/var/lib/apt/extended_states,它是这种格式的文本文件数据库:

Package: grub-common

Architecture: amd64

Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic

Architecture: amd64

Auto-Installed: 1

Auto-Installed: 0指示软件包已明确安装,并且不只是一个依赖项。

  回答 3:

  创建当前安装的软件包的备份:

dpkg --get-selections > list.txt

  然后(在另一个系统上)从该列表还原安装:

dpkg --clear-selections

sudo dpkg --set-selections < list.txt

  要删除过时的软件包:

sudo apt-get autoremove

要在备份时安装(例如,要安装由dpkg --set-selections设置的软件包):

sudo apt-get dselect-upgrade

  回答 4:

  要按apt命令列出有意安装的所有软件包,请运行以下命令:

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |

egrep '^(Start-Date:|Commandline:)' |

grep -v aptdaemon |

egrep '^Commandline:'

  这提供了基于时间的反向视图,其中列出了较早的命令:

Commandline: apt-get install k3b

Commandline: apt-get install jhead

...

  安装数据也显示了synaptic使用情况,但是没有详细信息(安装日期相同):

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |

egrep '^(Start-Date:|Commandline:)' |

grep -v aptdaemon |

egrep -B1 '^Commandline:'

  提供以下内容:

Start-Date: 2012-09-23 14:02:14

Commandline: apt-get install gparted

Start-Date: 2012-09-23 15:02:51

Commandline: apt-get install sysstat

...

  回答 5:

apt-mark showmanual

  要将结果输出到文本文件中,请执行以下操作:

apt-mark showmanual >list-installed.txt

  回答 6:

dpkg-query(代替dpkg --get-selections,它列出了一些未安装的包)如下:

dpkg-query -W -f='${PackageSpec} ${Status}n' | grep installed | sort -u | cut -f1 -d > installed-pkgs

  或者:

dpkg -l | grep ^ii | sed 's_ _t_g' | cut -f 2 > installed-pkgs

  回答 7:

  列出所有已安装的软件包,

dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt

  或者

aptitude search -F '%p' '~i' > 1.txt

  或者

dpkg --get-selections > 1.txt

  备注: 你将在主文件夹中得到结果1.txt文件,或者你可以指定自己的路径。

  回答 8:

  你可以使用Synaptic保存已安装软件包的当前状态,在Synaptic中,选择"file/save markings",输入要保存状态的文件名,并选中 "Save full state ,not only changes"。

  保存的文件可以加载到一台新机器中,使用Synaptic"file/read markings"进行加载。

  回答 9:

我建议使用blueprint,即使它是为服务器设计的,在桌面也可以使用,它将创建一个script/chef/puppet,你可以使用它来安装所有软件包。

  回答 10:

  你需要一个"ubuntu account."(在重新安装之前创建它,以便你的系统同步。),

  转到软件中心,在文件菜单下查找"在计算机之间同步..."选项。

  点击它,你会看到你注册的电脑和你电脑上所有应用的列表。

  安装新计算机时,计算机将被视为新计算机。

  点击它,你会得到所有应用的列表。

你可能感兴趣的:(apt如何列出所有已经安装的软件包)