我在 Suse Linux 上将 perl 从 perl58 升级到 perl588。看起来即使旧版本的 Config.pm 存在,但新版本的安装会破坏旧版本。而在 HP 和 AIX 等其他操作系统上升级 Perl 不会干扰旧版本。例如: perl58 和 perl588 版本存在于文件夹中,例如“/usr/standard_perl”,如下所示:
/usr/standard_perl/perl58 (directory)
/usr/standard_perl/perl588 (directory)
并有指向它的符号链接。
升级前后链接如下:
前:
perl58_link -> /usr/standard_perl/perl58
后:
perl5_link -> /usr/standard_perl/perl588
perl58_link -> /usr/standard_perl/perl588
perl588_link -> /usr/standard_perl/perl588
现在,当我尝试从 /usr/standard_perl/perl58/bin 运行简单的“./perl -V”命令时,旧版本抱怨找不到 Config.pm,即使它很好地存在于它自己的树结构中。
是不是在 Linux 中,perl 遵循@INC 的硬编码路径。这种行为仅在 Linux 上观察到。
我担心我无法投入生产,因为有些脚本已经为旧版本运行,如果存在这种行为,我需要知道它是否可以修复或者这是 Linux 的已知行为。
我不确定这可能是因为现在升级后的旧链接被指向新版本,而仅仅链接是不够的,需要在 LINUX 上修改更多内容?
注意: 1. perl 模块为每个版本单独维护 2. 我没有将任何文件与以前的版本混合。3. 我们希望所有在生产服务器中运行的旧 perl 脚本都不要破坏,而是使用最新版本来维护 Perl 版本。3a.因此需要调整指向最新版本而不是他们自己版本的链接。
观察:仅在 Linux 上看到此行为。值得注意的一点是,当我将旧版本的链接转换为最新版本时。@INC 会自动更新为最新版本的 INC,而不是在 LINUX 中。
我在这里错过了什么吗?