我如何自动化CPANconfiguration?

第一次从命令行运行cpan时,会提示您提供各种问题的答案。 如何自动化cpan并从一开始就非交互式地安装模块?

5 Solutions collect form web for “我如何自动化CPANconfiguration?”

由于还没有提到, cpanminus是一个零configuration安装程序。 如果您的版本控制不可用,则可以下载自包含的可执行文件。

cpanm可执行文件很容易安装(如可执行文件本身所logging):

curl -L http://cpanmin.us | perl - --self-upgrade # or wget -O - http://cpanmin.us | perl - --self-upgrade 

我正在寻找一个简单的解决scheme,并发现这个工程:

 (echo y;echo o conf prerequisites_policy follow;echo o conf commit)|cpan 

只是以为我会张贴在这里,以防其他人出现。

制作你自己的CPAN.pmconfiguration文件。 最近版本的cpan命令有一个-J开关来转储当前的configuration,一个-j开关可以加载你喜欢的任何configuration。

一种方法是从一个系统运行一个运行后创build的CPAN / Config.pm(或〜/ .cpan / CPAN / MyConfig.pm),并将其安装为系统上的〜/ .cpan / CPAN / MyConfig.pm想自动化。 另一种方法是运行以下命令为您创buildMyConfig.pm文件(下面有一件事是urllist参数的实际值,您必须使用适当的CPAN镜像值填写):

 #!/usr/bin/perl use strict; use Config; $ENV{PERL_MM_USE_DEFAULT}=1; $ENV{PERL_MM_NONINTERACTIVE}=1; $ENV{AUTOMATED_TESTING}=1; # get the path to the library my $libpath = $Config{privlib}; # force CPAN::FirstTime to not default to manual # setup, since initial CPAN setup needs to be automated { local @ARGV = "$libpath/CPAN/FirstTime.pm"; my @source = <>; $source[72] =~ s/\byes\b/no/ or die "Could not auto configure CPAN"; eval join('', @source) or die "Error executing CPAN::FirstTime: $@"; } CPAN::FirstTime::init("$libpath/CPAN/Config.pm"); delete $CPAN::Config->{links}; $CPAN::Config->{auto_commit} = '0'; $CPAN::Config->{check_sigs} = '0'; $CPAN::Config->{halt_on_failure} = '0'; $CPAN::Config->{make_install_make_command} = '/usr/bin/make'; $CPAN::Config->{mbuild_arg} = ''; $CPAN::Config->{mbuildpl_arg} = ''; $CPAN::Config->{mbuild_install_arg} = ''; $CPAN::Config->{show_upload_date} = ''; $CPAN::Config->{tar_verbosity} = '1'; $CPAN::Config->{trust_test_report_history} = '0'; $CPAN::Config->{use_sqlite} = '0'; $CPAN::Config->{yaml_load_code} = '0'; $CPAN::Config->{urllist} = [qw(http://... ftp://... etc...)]; $CPAN::Config->{connect_to_internet_ok} = '1'; $CPAN::Config->{perl5lib_verbosity} = 'v'; $CPAN::Config->{prefer_installer} = 'MB'; $CPAN::Config->{build_requires_install_policy} = 'no'; $CPAN::Config->{term_ornaments} = '1'; $CPAN::Config->{mbuild_install_build_command} = './Build'; mkdir ".cpan/CPAN" or die "Can't create .cpan/CPAN: $!"; CPAN::Config->commit(".cpan/CPAN/MyConfig.pm"); CPAN::install('Bundle::CPAN'); CPAN::install('JSON'); CPAN::install('JSON::XS'); # etc. exit 0; 

CPAN.pm的最新版本问第一个问题是否应该自动运行其余的configuration,所以build议首先升级CPAN.pm(手动): tarballs , repo 。

  • 我如何知道Perl模块是核心还是标准安装的一部分?
  • 而(1)比。 for(;;)有速度差吗?
  • 父母和基地在Perl 5有什么区别?
  • 我怎样才能启动一个Perl的交互式控制台?
  • 在Perl中检查string是否为空的正确方法是什么?
  • 检查一个string是否包含一个子string
  • 如何将string转换为Perl中的数字?
  • 我如何在Perl中进行unit testing?
  • 用逗号分隔多行代码(Perl / Sed / AWK)
  • 我怎样才能在Perl网页爬虫处理Javascript?
  • 在Perl中制作数据结构的深层副本的最佳方法是什么?