Answers:
我不知道是否有更好的方法(可能有),但是根据您需要的规模,您可以对部分机器使用aptitude的搜索功能。它使您可以搜索与模式匹配的软件包。因此,aptitude search '~i'
为您提供了所有已安装的软件包
但是,我们需要更进一步。软件包管理器喜欢知道您直接请求了哪些软件包,以及由于其他软件包而被拉入了哪些软件包。没有这些信息,丑陋的事情就会发生。因此,我们可以扩展该搜索模式来选择未自动安装的软件包:aptitude search '!~M ~i'
Aptitude参考手册中详细介绍了搜索功能。
现在,您具有要安装的软件包列表。您可以根据需要通过将-F标志传递给该命令来格式化输出,例如-F'%p'以获得仅包含程序包名称的列表。
例如,您可以在计算机1上运行此命令:
aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh
然后将新创建的aptshell.sh
文件复制到计算机2上,并在计算机2上使用此命令在此处运行该文件:
sudo sh aptshell.sh
然后,以原始机器2作为新机器1,并将原始机器1作为新机器2重复该过程。现在,每台计算机都具有以前仅在另一台计算机上的所有软件包。
Ubuntu软件中心具有一项功能,可在多台计算机之间同步已安装的软件包。它使用您的Ubuntu One帐户保存软件包。只需选择File > Sync Between Computers...
并使用您的Ubuntu One帐户登录。
当前,它的功能受到某种程度的限制,例如,它仅支持默认软件包(不支持ppa
s),并且您必须手动选择要安装的软件包(这可以看作是一项积极的功能)。有关详细说明,请参阅本文。