问题:
我想将所有已安装软件包的列表输出到一个文本文件中,这样我可以查看它,并且在另一个系统上进行批量安装,我该怎么做?
回答 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."(在重新安装之前创建它,以便你的系统同步。),
转到软件中心,在文件菜单下查找"在计算机之间同步..."选项。
点击它,你会看到你注册的电脑和你电脑上所有应用的列表。
安装新计算机时,计算机将被视为新计算机。
点击它,你会得到所有应用的列表。