【发布时间】:2019-03-29 14:37:12
【问题描述】:
我正在尝试在我雇主的网络上安装客户的 Perl 环境。当所说的客户运行我们的非 Perl 应用程序时,很多 Perl 代码在他们的(芯片构建)流程中到处运行。在客户站点的归档过程中,收集了大量的 Perl 内容(脚本、模块等)。当我的雇主网络上的所有内容都被打开时,有很多事情需要整理;例如,在客户站点捕获的 PERLLIB 环境变量有 430 多个目录条目。
毫不奇怪,我的问题更多地与系统管理员相关:验证在客户站点捕获的 Perl 环境是否解包并在我雇主的网络上顺利运行的最佳方法是什么?我意识到这是一个加载的问题,但从本质上讲,确保 PERLLIB 环境变量中的 430 多个条目被正确排序是很困难的。
解压客户环境后,当 Perl 脚本尝试运行但找不到特定模块时,我打印出 @INC 的内容(这是迄今为止最常见的问题)。然后我 grep/find 模块在提取的目录结构中的位置,并将其撞到 @INC 列表的开头。
perl -e "打印连接($/,@INC);"
如果这不是发布此类问题的最佳平台,我深表歉意,但我不知道还有什么地方可以解决如此复杂的问题。
【问题讨论】:
-
也许PerlMonks可以回答这个问题?如果您决定在那里发帖,请不要忘记宣布交叉发帖以防止不必要的工作。
-
你考虑过 Docker 吗? docker.com/why-docker
-
Re "在客户站点捕获的 PERLLIB 环境变量有超过 430 个目录条目。",什么????拥有多个确实没有意义。 PERL5LIB 应该用于已安装的模块,
use FindBin qw( $RealBin ); use lib "$RealBin/...";通过脚本来查找与脚本相关的模块。
标签: perl