我该怎么做才能安全顺利地过渡到一些新的计算机硬件?

Dav*_*ary 7 install backup version configuration upgrade

我通常使用机器 A,并将 A 备份到文件服务器 B 上。迟早我会因为某种原因而丢失机器 A。它的硬盘磨损了,或者被闪电击中了,或者一些销售人员让我相信这是一块令人尴尬的过时垃圾,或者超频实验出了可怕的错误,或者它遭受了“与闪光相关的事件”等等。

假设计算机 C 与计算机 A 完全不同——不同的大容量存储接口、不同公司的处理器、不同的屏幕分辨率等。

是否有一种简单的方法可以在灾难发生之前列出 A 上当前安装的所有软件,以便在计算机 C 的空白硬盘驱动器上轻松安装相同的软件?或者更好的是,可以轻松安装每个软件的最新版本,以及针对该特定机器 C 优化的特定子版本?

如果我在 B 上有足够的空间,似乎最简单的方法是将所有内容从 A复制到 B。如果我这样做,将我想从 B 复制到 C 的文件与我不想复制的文件分开的好方法是什么?我不想复制二进制文件,我可以根据需要轻松地重新下载(并​​可能重新编译),并且无论如何可能无法在机器 C 上工作。或者从长远来看,首先尝试避免将这些容易获得的特定于机器的二进制文件备份到 B 上是否更好?有没有更好的方法来减少病毒和木马被传递到 C 并重新激活的机会?

当我自定义软件或编写全新的软件时,有什么好方法可以确保我所做的调整得到备份并转移到新机器上并安装?比如cron和anacron任务?

我该怎么做才能安全顺利地过渡到一些新的计算机 C?

(这个问题扩展了我认为特别重要的 “增量系统备份和恢复 w/rsync 或 rdiff-backup 问题”的子问题)。

Dav*_*ary 5

版本控制中的 $HOME

  • 定期将 /home 目录中的所有内容提交到版本控制存储库。(除了在提交程序员的 $HOME 目录之前总是执行“make superclean”,因此他从不提交二进制可执行文件或其他易于机器生成的文件)。
  • 对于在我的工作计算机上“拥有”唯一数据的每个用户,请确保我的文件服务器上有某种版本控制存储库,其中包含该用户的整个 $HOME 目录(“$HOME in subversion”)。尽管我实际上是唯一接触过这个键盘的人,但我有一个单独的用户: 不受信任的网络浏览器,喜欢安装许多可能感染恶意软件的游戏;经常编写带有可怕错误的软件的 C 程序员,因此我们希望将他隔离在沙堆中,在那里他不会意外删除我最喜欢的网络书签;运行维基的机器人用户;根用户;等等。
  • 将所有“我的”文件保存在我的 $HOME 目录中,这是一个版本控制工作目录。
    • 文本文件、照片、网络浏览器书签文件等——都在主目录中。
    • 如果我编写了一个“需要”进入其他子目录的批处理脚本,请将主副本保存在我的 $HOME 目录中的某个位置,并创建从该其他子目录到主副本的软链接。
    • 如果我编写了“需要”进入其他子目录的编译软件,请将主源代码和 Makefile 保存在我的 $HOME 目录的某个子目录中,并设置 Makefile,以便“make install”自动将二进制可执行文件安装在另一个目录。
    • 如果我修复了某些软件中的错误,请向上游传递错误修复。
    • 在我的 $HOME 目录中的某个文本文件中保留“我喜欢但默认未安装的应用程序”和“默认情况下通常安装但我不喜欢的应用程序”的列表。请参阅如何跟踪 Ubuntu (Linux) 上安装了哪些软件包?或者您如何跟踪 Fedora (Linux) 上安装了哪些软件包?
  • 如果我购买 CD 或 DVD 上的软件,请在我的文件服务器上备份 ISO 映像,然后从该映像安装到我的工作计算机上。(因为我的工作电脑不具备光驱)。

后来,当机器A丢失时,

  • 在机器 C 上安装本周我最喜欢的任何发行版的最新版本,包括所有默认软件。
  • 对于每个用户,对最新版本 (HEAD) 进行版本控制检出,除了以某种方式 (?) 跳过所有二进制可执行文件。这可以阻止某些类型的病毒和木马传播到 C。
  • 在我的主目录之外设置其他东西:
    • 检查我的应用程序列表,卸载我不想要的东西。
    • 检查我的应用程序列表,安装我想要的最新版本的东西。希望最新版本包含我传回的错误修复。(有关自动化此过程的方法,请参见上面的链接)
    • 对我编写的每个编译程序执行“make superclean”和“make install”。
    • 以某种方式(?)记住批处理脚本“需要”去哪里,并在我的 /home/ 目录中创建一个从该位置到主源的软链接。(有没有办法自动化这个?)
    • 以某种方式(?)记住我作为 cron 和 anacron 作业运行的所有内容,然后再次输入它们。
    • 从文件服务器上的 ISO 映像安装在 CD 上购买的软件。
  • ……我还有什么遗漏吗?


Maj*_*nko 2

所有这些都取决于您的发行版使用的包管理系统。

如果您是 debianish 用户,您可以使用 dpkg 获取已安装软件包的列表。

Redhatesque 用户可以使用 yum 获取列表

对于 FreeBSD,您可以在 /var/db/pkg 中查找已安装的软件包列表。


归档时间:

查看次数:

1741 次

最近记录:

14 年,9 月 前