是否可以直接包含/使用 perl 的 Nagios::Plugin 而不安装它?

是否可以直接包含/使用 perl 的 Nagios::Plugin 而不安装它?

我是一名 Web 开发人员,需要使用 nagios 监控大量服务器,并且必须为其编写一些 perl 脚本。

通过查看,我发现 CPAN 中有 Nagios::Plugin 包,但是服务器上没有这个包,而且我不允许进行 CPAN 安装(甚至不确定所有服务器是否都有这个包),更不用说进行 make、make install 了。

我猜想可能有一种方法可以只下载 tarball、解压缩它,然后在你的 perl 脚本中包含/需要它,不知道是否可能指定绝对路径等。

谢谢!

我找到了这个脚本来查找 Nagios::Plugin 软件包,但无济于事

#!/usr/bin/perl

use strict;
use warnings;

eval { require Nagios::Plugin && Nagios::Plugin->import };
if ($@) {
# assume a relatively recent Perl where FindBin is in core
no warnings;
require FindBin;
unshift @INC, map "$FindBin::Bin/$_",
qw(perl lib perl/lib ../perl ../lib ../perl/lib);
local $" = "\n\t";
eval {
require Nagios::Plugin && Nagios::Plugin->import
}
or die "Couldn't locate Nagios::Plugin in \n\t@INC\n";
}

答案1

它似乎是一个纯 perl 模块,所以理论上你可以解压并加载它而无需运行 make。请注意,你需要已在 Makefile.PL 中列出所有必需的模块,否则模块将无法工作。

如果您将其解压到 ~/Nagios-Plugin-0.36/ 中,并且您的脚本位于 ~/script 中,那么您可以执行以下操作:

mkdir ~/script/lib

cp -R ~/Nagios-Plugin-0.36/lib/ ~/script/lib/

然后,您上面发布的脚本片段应该能够加载该模块。

祝你好运!

答案2

这个特定的包位于基于 Red Hat 的系统的 EPEL 存储库中,因此如果您正在管理这些包,您只需安装 RPM 即可perl-Nagios-Plugin

相关内容