如何解决 CPAN.pm 需要安装 tar、gzip 和 bzip2 的错误信息
安装各种开源软件所需的 Perl 模块是系统管理员的日常任务。通过解决所有依赖项手动安装 Perl 模块是一个乏味和烦人的过程。
使用 CPAN 安装 Perl 模块是一个更好的解决方案,因为它会自动解析所有依赖项。在本文中,让我们了解一下如何使用手动和 CPAN 方法在 Linux 上安装 Perl 模块。
如果未安装 Perl 模块,应用程序将显示以下错误消息。在此示例中,缺少 XML::Parser Perl 模块。
Can't locate XML/parser.pm in @INC (@INC contains:
/usr/lib/perl5/5.10.0/i386-linux-thread-multi
/usr/lib/perl5/5.10.0
/usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.10.0
/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/site_perl/5.10.0 .)
手动安装 Perl 模块
下载 Perl 模块
转到CPAN Search网站并搜索您要下载的模块。在这个例子中,让我们搜索、下载和安装 XML::Parser Perl 模块。我已将 XML-Parser-2.36.tar.gz 下载到 /home/download
# cd /home/download
# gzip -d XML-Parser-2.36.tar.gz
# tar xvf XML-Parser-2.36.tar
# cd XML-Parser-2.36
构建 perl 模块
# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for XML::Parser::Expat
Writing Makefile for XML::Parser
# make
# make test
安装 perl 模块
# make install
这对于一个没有依赖关系的模块来说非常简单。通常,Perl 模块将依赖于其他几个模块。一个一个地追逐所有这些依赖项可能是非常痛苦和烦人的任务。我推荐 CPAN 安装方法,如下所示。仅当服务器未连接到 Internet 时才使用手动方法。
使用 CPAN 自动安装 Perl 模块
验证是否已安装 CPAN
要使用 CPAN 安装 Perl 模块,请确保 cpan 命令正在运行。您应该先安装 CPAN perl 模块,然后才能使用 CPAN 安装任何其他 Perl 模块。在这个例子中,没有安装 CPAN 模块。
# cpan
-bash: cpan: command not found
# perl -MCPAN -e shell
Can't locate CPAN.pm in @INC (@INC contains:
/usr/lib/perl5/5.10.0/i386-linux-thread-multi
/usr/lib/perl5/5.10.0
/usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.10.0
/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.10.0
/usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.10.0 .).
BEGIN failed--compilation aborted.
使用 yum 安装 CPAN 模块
# yum install perl-CPAN
yum install perl-CPAN 命令的输出:
Loaded plugins: refresh-packagekit
updates-newkey | 2.3 kB 00:00
primary.sqlite.bz2 | 2.4 MB 00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
Transaction Summary
=============================================================================
Install 5 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): perl-ExtUtils-ParseXS-2.18-31.fc9.i386.rpm | 30 kB 00:00
(2/5): perl-Test-Harness-2.64-31.fc9.i386.rpm | 70 kB 00:00
(3/5): perl-CPAN-1.9205-31.fc9.i386.rpm | 217 kB 00:00
(4/5): perl-ExtUtils-MakeMaker-6.36-31.fc9.i386.rpm | 284 kB 00:00
(5/5): perl-devel-5.10.0-31.fc9.i386.rpm | 408 kB 00:00
Installing : perl-ExtUtils-ParseXS [1/5]
Installing : perl-devel [2/5]
Installing : perl-Test-Harness [3/5]
Installing : perl-ExtUtils-MakeMaker [4/5]
Installing : perl-CPAN [5/5]
Installed: perl-CPAN.i386 0:1.9205-31.fc9
Dependency Installed:
perl-ExtUtils-MakeMaker.i386 0:6.36-31.fc9
perl-ExtUtils-ParseXS.i386 1:2.18-31.fc9
perl-Test-Harness.i386 0:2.64-31.fc9
perl-devel.i386 4:5.10.0-31.fc9
Complete!
第一次配置cpan
第一次执行 cpan 时,需要设置一些配置参数,如下所示。我只展示了下面的重要配置参数。按回车键接受所有默认值。
注意:配置后一定要在cpan提示符下执行“ o conf commit ”保存设置。
# cpan
Sorry, we have to rerun the configuration dialog for CPAN.pm due
to some missing parameters...
CPAN build and cache directory? [/root/.cpan]
Download target directory? [/root/.cpan/sources]
Directory where the build process takes place? [/root/.cpan/build]
Always commit changes to config variables to disk? [no]
Cache size for build directory (in MB)? [100]
Let the index expire after how many days? [1]
Perform cache scanning (atstart or never)? [atstart]
Cache metadata (yes/no)? [yes]
Policy on building prerequisites (follow, ask or ignore)? [ask]
Parameters for the 'perl Makefile.PL' command? []
Parameters for the 'perl Build.PL' command? []
Your ftp_proxy? []
Your http_proxy? []
Your no_proxy? []
Is it OK to try to connect to the Internet? [yes]
First, pick a nearby continent and country by typing in the number(s)
(1) Africa
(2) Asia
(3) Central America
(4) Europe
(5) North America
(6) Oceania
(7) South America
Select your continent (or several nearby continents) [] 5
(1) Bahamas
(2) Canada
(3) Mexico
(4) United States
Select your country (or several nearby countries) [] 4
(2) ftp://carroll.cac.psu.edu/pub/CPAN/
(3) ftp://cpan-du.viaverio.com/pub/CPAN/
(4) ftp://cpan-sj.viaverio.com/pub/CPAN/
(5) ftp://cpan.calvin.edu/pub/CPAN
(6) ftp://cpan.cs.utah.edu/pub/CPAN/
e.g. '1 4 5' or '7 1-4 8' [] 2-16
cpan[1]> o conf commit
commit: wrote '/usr/lib/perl5/5.10.0/CPAN/Config.pm'
cpan[2]> quit
No history written (no histfile specified).
Lockfile removed.
使用 CPAN 安装 Perl 模块
您可以使用以下方法之一使用 cpan 安装 Perl 模块。
# /usr/bin/perl -MCPAN -e 'install Email::Reply'
(or)
# cpan
cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?)
cpan[1]> install "Email::Reply";
以上 perl install 命令的输出:
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
Database was generated on Mon, 15 Sep 2008 11:02:52 GMT
Running install for module 'Email::Reply'
Running make for R/RJ/RJBS/Email-Reply-1.202.tar.gz
CPAN: LWP::UserAgent loaded ok (v2.036)
CPAN: Time::HiRes loaded ok (v1.9711)
Fetching with LWP:
ftp://carroll.cac.psu.edu/pub/CPAN/authors/id/R/RJ/RJBS/Email-Reply-1.202.tar.gz
CPAN: checksum security checks disabled because Digest::SHA not installed.
Please consider installing the Digest::SHA module.
CPAN: Compress::Zlib loaded ok (v2.008)
Email-Reply-1.202/
Email-Reply-1.202/Changes
CPAN: File::Temp loaded ok (v0.18)
Warning: prerequisite Email::Abstract 2.01 not found.
Warning: prerequisite Email::MIME::Creator 1.41 not found.
Writing Makefile for Email::Reply
---- Unsatisfied dependencies detected during ----
---- RJBS/Email-Reply-1.202.tar.gz ----
Email::Abstract [requires]
Email::MIME::Creator [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]
[Note: CPAN automatically detects that Email::Abstract
and Email::MIME::Creator is required]
Fetching with LWP:
ftp://server/pub/CPAN/authors/id/R/RJ/RJBS/Email-Abstract-2.134.tar.gz
make -- OK
make install -- OK
Fetching with LWP:
ftp://server/pub/CPAN/authors/id/R/RJ/RJBS/Email-MIME-Creator-1.454.tar.gz
make -- OK
make install -- OK
Warning: prerequisite Email::Simple::Creator 1.4 not found.
Writing Makefile for Email::MIME::Creator
Email::Simple::Creator [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]
[Note: CPAN automatically detects that Simple::Creator is required]
Fetching with LWP:
ftp://carroll.cac.psu.edu/pub/CPAN/authors/id/R/RJ/RJBS/Simple-Creator.tar.gz
make -- OK
make install -- OK
Fetching with LWP:
CPAN.pm: Going to build R/RJ/RJBS/Email-Reply-1.202.tar.gz
make -- OK
make install -- OK
在上面的例子中,Email::Reply 依赖于其他几个模块。 CPAN 自动解析依赖项并安装 Email::Reply 和所有依赖的 Perl 模块。
- 点赞
- 收藏
- 关注作者
评论(0)