您的位置:首页 > 运维架构 > Linux

Linux 检查是否安装perl模块及列出所有已安装的perl模块(安装路径、版本号)

2017-02-10 16:04 1001 查看
1. 列出所有系统中已经安装的perl模块,可以使用以下命令:

perldoc perllocal


或者:

instmodsh


或者:

find  `perl -e 'print "@INC"'` -name '*.pm'


2. 查询单个perl模块的安装路径,可以使用如下命令:

以DBD::mysql为例

perldoc -l DBD::mysql

3. 查看安装的perl模块的版本号,可以使用如下命令:

以DBD::mysql为例

perl -MDBD::mysql -e 'print DBD::mysql->VERSION. "\n"'


这里介绍两种linux中查看perl模块是否安装的方法,一种是对于单体的模块,一种是对于群体的
单体验证:

[root@root ~]# perl -MShell -e "print\"module installed\n\""


module installed
这里使用-M后边紧跟着Shell这个perl模块,如果输出module installed结果。那么此模块是存在在系统中的。

[root@root ~]# perl -MMail::Sender -e "print\"module installed\n\""


Can't locate Mail/Sender.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .).
BEGIN failed--compilation aborted.
如果出现类似于这种Can't locate。。。的提示,那么证明你系统中没有安装此模块。
群体验证:
这里所谓的群体验证只有一种方式,那么就是使用一个脚本来输出系统中所有已安装的perl脚本:

#!/usr/bin/perl
use strict;
use ExtUtils::Installed;

my $inst = ExtUtils::Installed->new();

my @modules = $inst->modules();

foreach  (@modules) {
my  $ver = $inst->version($_) || "???";
printf("%-22s -Version- %-22s\n", $_, $ver);
}
exit;


运行得到的结果为:
DBD::Oracle -Version- 1.16
DBI -Version- 1.611
ExtUtils::Install -Version- 1.54
Perl -Version- 5.8.8
我们也可以使用grep函数来输出单个模块是否安装,但是需要开发自己的脑筋哟~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux perl