5

Inline::Python在模式下运行时,什么可以解释此编译时错误消息-T

在 /usr/local/lib/perl/5.14.2/Inline/Python.pm 第 193 行使用 -T 开关运行时打开的不安全依赖项。

第 193 行是Inline::Pythonopens的地方$o->{API}{location},我认为它是“内联目录”。

当然,我已经使用了所需的选项:

use constant _INLINE_DIR_ => '/var/myapp/inline';
use Inline Config => UNTAINT         => 1,
                     NO_UNTAINT_WARN => 1,
                     DIRECTORY       => _INLINE_DIR_;

我已经确保它/var/myapp/inline里面的所有东西都是每个人都可以写的,显然包括 root 和应用程序setuid在运行时的用户。

相同的脚本在我的计算机上运行没有问题,无论我是否以 root 身份启动它,运行Inline0.50 Inline::Python0.43,但是当我尝试在使用相同版本的服务器上运行它时出现此错误,Inline::Python或者版本 0.49 或 0.55 Inline.

4

1 回答 1

1

由于这在不同的环境中是不同的,我敢打赌,在它执行配置参数请求的步骤之前,不知何故存在一个环境变量Inline或者正在读取。Inline::PythonUNTAINT

(与评论相反,我认为文件权限不会导致此消息,只是对命令行参数或环境变量的不安全依赖关系)

鉴于此,我将通过强制清除环境然后仅添加您知道需要的那些环境变量来启动您的脚本:

%ENV = ();
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';  # Or whatever's appropriate
$ENV{'PYTHONPATH'} = '/usr/local/lib/python';   # Optional, if appropriate
# ... etc ...
于 2014-07-12T20:34:43.027 回答