Answers:
除了pjz提到的dpkg技巧外,您可能还需要查看etckeeper(教程)-一个将/ etc / *置于版本控制下的应用程序,可以更轻松地查找已完成的任何更改并将它们复制到其他服务器。
此外,对于比pjz方法生成的列表短的列表,可以使用
$ deborphan -a --no-show-section > /tmp/mypackagelist
这将为您提供一个软件包列表,这些软件包将安装您需要作为依赖项的所有其他软件包。如果您确实想浏览列表,则可能会很有用。(dpkg --get-selections将产生一个长期列表)。另外,该列表足够简短,您可以添加换行符并用'#'注释掉条目。然后,在安装额外的软件包时,您可以执行
$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y
这样,如果有些软件包只想安装在某些计算机上,则不必将它们从软件包列表中完全删除。
dpkg --get-selections >/tmp/mypackagelist
应该可以。然后,确保新机器上的/etc/apt/sources.list具有与旧机器上相同的条目集后,将mypackagelist复制到新机器上并执行以下操作:
cat mypackagelist | xargs apt-get -y install
而且你应该很好走。
请注意,dpkg --get-selections行也是偶尔将其放入/ etc / dir的好信息-这意味着您不必费心备份/ bin /和/ usr / bin /等,因为您知道系统上有哪些软件包。
dd
波纹管的回复
Ubuntu论坛有一个很好的答案
论坛讨论中的一些其他链接:
有一个名为ReMasterSys的工具可以为您完成此任务。参见http://geekconnection.org/remastersys/
我希望这会有用。
使用FSArchiver复制机器是完全可以接受的。否则,这里有一些有用的命令对,您还可以将它们的前半部分添加到备份cron中:
debconf-get-selections
debconf-set-selections
〜
aptitude-create-state-bundle
aptitude-run-state-bundle --unpack
〜
dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections
您应该复制的位置是/ etc和/ var。上面的命令直接在/ var中处理一些文件,并通过debconf间接在/ etc中处理一些conffile。您只需复制那些子树并运行智能即可获得相同的效果。