- 论坛徽章:
- 0
|
比如要安装全部Acme类的模块, 有349个, 手工一个个安装会死人的, 就用perl来实现自动安装.
第一步:
用命令perl -e 'use CPAN;CPAN::Shell->m("/Acme/");'来取得Acme相关的模块列表,得到下面的输出:
.................
Module Acme::Yoda (GREP/Acme-Yoda-0.02.tar.gz)
Module Acme::Your (RCLAMP/Acme-Your-0.01.tar.gz)
Module Acme::Your::Filter (RCLAMP/Acme-Your-0.01.tar.gz)
Module Acme::emcA (AUTRIJUS/Acme-emcA-0.10.tar.gz)
Module Acme::l33t (Acme::l33t)
Module Acme::landmine (DAVIDNICO/Acme/Acme-landmine-1.00.tar.gz)
Module Acme::please (DAVIDNICO/Acme/Acme-please-0.01.tar.gz)
Module Acme::speeed (MEMOWE/Acme-speeed-1.00.tar.gz)
Module Acme::use::strict::with::pride (NWCLARK/Acme-use-strict-with-pride-0.04.tar.gz)
Module Catalyst::Plugin::Acme::Scramble (ASHLEY/Catalyst-Plugin-Acme-Scramble-0.02.tar.gz)
349 items found
第二步:
用perl来处理输出的结果:
perl -e 'use CPAN;CPAN::Shell->m("/Acme/");' | \
perl -nle '@a=split /\s+/;print "perl -MCPAN -e\"install $a[1]\"" if $_=~ /Acme/i'
得到类似下面的输出结果:
............................................................
perl -MCPAN -e"install Acme::landmine"
perl -MCPAN -e"install Acme::please"
perl -MCPAN -e"install Acme::speeed"
perl -MCPAN -e"install Acme::use::strict::with::pride"
perl -MCPAN -e"install Catalyst::Plugin::Acme::Scramble"
最终的命令:
最后吧输出的结果传给shell执行就可以了:
perl -e 'use CPAN;CPAN::Shell->m("/Acme/");' | \
perl -nle '@a=split /\s+/;print "perl -MCPAN -e\"install $a[1]\"" if $_=~ /Acme/i' | \
/bin/sh |
|