工作站无痛发行版迁移清单:我应该记住什么?

工作站无痛发行版迁移清单:我应该记住什么?

我一直非常高兴地运行 OpenSuSE 11.3,但是当它逐渐退出官方版本时,我尝试了 11.4,发现了很多错误,带着很大的期望跳到了 12.1,结果却遇到了 Gnome3 的疯狂。

从那时起我一直在使用 Mint 12,但我觉得它有一些奇怪的错误,即使我保持所有软件包都是最新的。我正在考虑使用 Mint 13,或者可能切换回带有 XFCE 的 OpenSuSE,甚至可能尝试 Fedora。问题是我不能在项目进行过程中连续好几天摆弄我的电脑。

有没有办法让转换尽可能轻松、无缝?如何避免丢失文档等数据以及我在数月/数年中修复的首选项/设置?

答案1

所有发行版的爱好者和那些喜欢将配置文件保存在 /home 的人都应该记住,让 /home 保持原状并被以前发行版的配置文件弄乱是很糟糕的。当我从 Mint KDE 更改为 Mint XFCE 以及其他发行版时,我遇到了很多问题。虽然 arch 可以被任何发行版安装或替换,而不会有太大的痛苦,但对于其他发行版来说并非如此。

符号链接、创建单独的 .dotfiles 目录是一种可能的解决方法,但兼容性如何?我在处理不同应用程序版本的配置文件时遇到了一些问题。发行版在其代表中使用许多应用程序的不同版本。当您切换到 Debian 稳定版时尤其如此。

我更喜欢将数据保存在单独的分区上,只获取重要的配置文件并在合并之前对它们进行比较。

至于可能的发行版替代方案,我可以说,在离开 arch 后,我曾经尝试过很多发行版,以寻找更新更少、更稳定的环境,所以我唯一愿意使用的发行版是 crunchbang。但这只是我的观点。没有什么可以超越你自己的经验;)

答案2

为了不丢失您的数据,我建议两件事:

  • 有两个分区:一个用于 /,一个用于 /home。
  • 使用 Git 或其他方式管理您的设置,并将它们保存在另一台计算机上。

重新安装时,请勿修改 /home 分区,/home 中的设置将保留。

不过,我还建议使用 Git 进行所有设置,包括您想要保留在 /etc 或 /root 中的内容,并将其推送到远程服务器上。

使用这样的配置,我最近毫不费力地从 Debian Unstable 切换到了 ArchLinux。

我不保留旧分区,所以如果新发行版不起作用,我需要重新安装其他东西。

编辑:有关我如何管理设置的一些详细信息:

基本上,我有一个点文件我保存所有点文件的存储库(例如 .vimrc、.config 目录、.gtkrc2.0 文件等),并且我有一个 shell 脚本将所有这些文件链接到它们的路径:

/home/sphax/.vimrc -> /home/sphax/.dotfiles/vimrc
/home/sphax/.config -> /home/sphax/.dotfiles/config
etc

您可以在其中添加任何您想要的内容,但请记住,许多点文件仍然具有默认值,因此您不需要对未修改的文件进行版本控制。

为了/ETC/根您执行相同的操作,每个存储库一个,您将其放置在 /home 分区上的某个位置,然后对所有内容进行符号链接。

通过这样的设置,您还可以获得:

  • 轻松备份(只需推送到远程服务器)
  • 轻松共享(例如,我在 3 台机器上共享我的 dotfiles 目录,一台 Debian 和一台 ArchLinux)

一开始需要一些调整/代码编写,但之后就变得非常简单和高效。

答案3

当然,将 /home 分区与 / 分开是很好的(正如 Vincent Rischmann 所说),但是当在同一台计算机上安装多个 Linux 发行版或升级到新版本(甚至是 Fedora)时,还有很多问题需要考虑。 23 到 26),以及非常基本的系统管理问题,例如定期备份哪些区域。

有人需要提供一个良好的完整清单(我还没有找到),但这里有一小部分需要考虑的问题,以便进行无痛切换并避免数据/配置丢失:

  • 显然,保留 /etc 的存档,但要注意,重要的配置数据现在保存在各处,并且不同发行版甚至同一发行版中的主要更新(例如打印机定义、samba 密码、cron'ed 作业、默认 shell)之间存在差异。初始化脚本等)。考虑 /var/spool 和 /usr 的某些部分需要保存,但不要在升级/切换后简单地恢复它们,因为它们大多数应该来自新版本(因此准备手动移动/链接文件或手动配置打印机、用户' crontab 等。
  • 最好保留您在系统中添加/更改的内容的(纸质)记录,这样您就知道需要对新的全新安装执行哪些操作才能使其恢复到您所拥有的状态(并且还可以提醒自己进行更改)制作,因此您可以将任何奇怪的行为与最近发生的变化相关联)。
  • 如果您使用 /usr/local/bin (等)来放置用户之间共享的脚本/实用程序,请记住对其进行备份或为其提供自己的分区(如果您在网络上有多台计算机并希望将系统管理保持在最低限度,那么可以在服务器上以只读方式安装完全相同的 /(以及 /etc、/usr),但是会有一些目录需要安装,例如 /var、/home、/tmp 和 /usr/local对于单个计算机来说,它是可读写的并且是唯一的,并且思考什么不能在系统之间共享的心理练习有助于设计一种设置,使单台计算机上的 Linux 版本之间的切换变得更容易。

理想情况下,我希望看到更好的 Linux 安装程序,它们记录了先前系统中 90% 的定制内容,并明确哪些内容仍需要手动完成以协调切换。

相关内容