在生产中安装 perl 模块需要什么样的备份计划?

在生产中安装 perl 模块需要什么样的备份计划?

我管理着一个应用程序,它多年来一直被人使用,但预计仍会继续工作。服务器操作系统已经得到维护,但 Perl 实例尚未维护,因为没有分配任何了解 Perl 的人负责这个机器。我需要为请求安装一个新模块,但我的管理层担心如果出现问题,我们如何撤消更改。我使用 CPAN 在我的计算机上本地安装了它,但还有大量的依赖项需要安装。

不幸的是,我没有测试服务器可以启动,我必须直接投入生产。(我并不是说这是理想的情况)

服务器是 Windows 机器。是否可以制作 Perl 目录的备份副本,以便在新模块更新/安装不顺利时将其覆盖在上面?

我知道这有点模糊。我不是服务器管理员,如果没有服务器管理员,我会对在没有备份计划的情况下将某些东西安装到生产环境中持谨慎态度。

答案1

第一种方法:

如果新模块和更新模块需要在许多脚本中使用,请使用此选项。

毕竟,Perl 模块只是目录中的一堆文件。只需备份该目录(压缩它们并将其存储在盒子外),然后以您喜欢的任何方法安装模块即可。

如果出现问题,请恢复整个 Perl 目录。

第二个:

如果这个新模块仅被一个或两个新模块使用,请使用此选项。

如果这是一个新模块并且被新应用程序使用,您可以将其及其所有依赖项安装到新目录中,我们将其称为 c:\new_perl_module,新模块名称为 fancy::newthing;

Perlbrew 是将新版本的 perl 和模块安装到单独目录中的现代方法,但 cpan 也可以做到这一点。

然后在需要此模块的脚本中,将这些行添加到脚本的最顶部:

use lib 'c:\new_perl_module';
use fancy::newthing;

这样,只有这个脚本会使用这个新的和更新的模块。如果失败,请注释掉这些行,然后回滚就完成了。已安装的模块版本保持不变。

答案2

使用你喜欢的任何方法备份你的 Perl 目录树,即使是简单的递归文件复制。接下来,安装你需要的东西。万一发生意外,只需从备份中恢复 Perl 树即可。说真的,没有比这更简单的了。

答案3

在这种情况下我会使用佩尔布鲁在主目录中从头安装新的 Perl,其中包含来自 CPAN 的所有新模块。这样,旧安装就不会受到影响。使用所有可用模块的最新版本基本上也不错。如果出现问题,也不会有问题。所有内容都保存在主目录中,Perlbrew 也会负责清理。

之后,我会和管理层认真谈谈。如果他们希望你变魔术,你为什么不让他们也为你变魔术呢?如果失败是个大问题,他们应该变个魔术,这样你就有了一个测试环境。

相关内容