我目前已在 Kubuntu 上设置了 Eclipse、MySQL、Python、Firefox 等的软件包、模块、设置等。我还已根据自己的需求对 Kubuntu 进行了最佳配置。我想在另一台具有不同处理器的机器上复制我的环境(目前在 Intel Q9450 上,新处理器是 i7)。据我了解,我的应用程序是为与我的特定处理器一起使用而编译的,因此直接进行分区复制是不可能的。
有没有什么办法可以将我的环境复制到另一台机器上,而无需重新安装和重新配置所有内容?
答案1
据我了解,我的应用程序是为了特定处理器使用而编译的,因此直接进行分区复制是不可能的。
是什么让您得出这个结论?至少对于 x86,Kubuntu 安装的软件包经过编译后可在几乎所有非史前 CPU 上运行。我相信它们可以在 486 以上任何型号的 CPU 上运行,这对您来说可能不成问题 :-)。
因此直接分区复制应该就可以正常工作:
cp -a
复制分区(或者,如果分区布局发生变化,则仅使用复制文件)- 使 /etc/fstab 适应新的分区布局
- 为新分区重新配置引导加载程序,并重新安装引导加载程序
- 启动并享受
问题只会出现在以下情况:
- 自编译软件包,但即使如此,大多数也会默认为所有现代 CPU 进行编译,除非你使用编译器选项
- 设备驱动程序
大多数现代内核在启动时自动检测硬件,所以通常即使是驱动程序也应该没问题,但如果出现故障,您通常可以在单用户模式下启动并修复任何驱动程序问题。
答案2
您可以不做任何更改就使用您的主目录。几乎所有进入主目录的内容都设计为可通过 NFS 等方式共享,因此您无需更改。
另外,使用以下方式保存您选择的套餐
sudo dpkg --get-selections '*' >file.txt
并在另一台机器上恢复它
sudo dpkg --set-selections <file.txt
类似地,使用以下命令保存你的 debconf 设置
sudo debconf-get-selections >file2.txt
并使用
sudo debconf-set-selections <file2.txt
对于其余/etc
不由 debconf 管理的配置,很难追踪手动更改的内容,除非你使用了类似etckeeper(也许是未来的想法)。因此,我倾向于将大部分配置保存在主目录中。但是,既然您知道自己感兴趣的程序,那么应该很容易找到相关文件/etc
并手动检查和复制它们。
答案3
您可以备份您的主页,然后将其恢复到另一台机器。这不能完全满足您的需求,但它将恢复所有配置。不过,您必须自己重新安装软件包。
答案4
支持获取、设置选择事项。
要确切知道哪些配置文件已发生更改,请运行以下命令:
dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
[[ -r $f ]] || continue; m2=$(md5sum "$f") ;
[[ $m2 != "$m $f" ]] && echo "$f";
done |xargs -n1 dlocate |tee ~/edited-conffiles
如果您尚未安装 dlocate,您可以用它替换它,dpkg -S
或者跳过该部分。
备份所有配置文件:
dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
echo "$f"
done |sudo tar cjf ~/conffiles.tbz2 -T -