/
check_dependencies.pl
40 lines (39 loc) · 1.67 KB
/
check_dependencies.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
my %dependent_modules = (
'Crypt::OpenSSL::RSA' => undef,
'Crypt::OpenSSL::Bignum' => undef,
'Compress::Raw::Zlib' => undef,
'IO::Compress::Gzip' => undef,
'Time::HiRes' => undef,
'Time::Piece' => undef,
'Time::Seconds' => undef,
'Digest::SHA' => undef,
'Digest::MD5' => undef,
'Encode::Locale' => undef,
'IO::Socket::SSL' => undef,
'Term::ANSIColor' => undef,
);
print "Checking dependencies ...\n";
print "--------------------------------\n";
for my $module (keys %dependent_modules){
eval "require $module";
$dependent_modules{$module} = $@?0:1;
printf "%-25s is %s\n", $module,$@?"not ok":"ok";
}
print "--------------------------------\n";
printf "Check result: %d/%d\n",scalar(grep {$dependent_modules{$_}==1} keys %dependent_modules),scalar(keys %dependent_modules);
if( scalar(grep {$dependent_modules{$_}==0} keys %dependent_modules) == 0){
print "Congratulations, all dependencies is ok\n";
}
else{
print "The below dependence is not found:\n\n";
for(grep {$dependent_modules{$_}==0} keys %dependent_modules){
print "$_\n";
}
print "\n";
print "You need to install these missing modules by do this command: \n\n";
print " cpanm " . join(" ",grep {$dependent_modules{$_}==0} keys %dependent_modules) . "\n";
print "\n";
print "If you are using Centos, yum is the recommended way which is efficient and reliable:\n\n";
print " yum -y install " . join(" ",map {s/::/-/g;"perl-" . $_ } grep {$dependent_modules{$_}==0} keys %dependent_modules) . "\n";
print "\n";
}