peru modules manager library cpanminus perl cpan

manager - perl modules



¿Cómo automatizo la configuración de CPAN? (5)

Como aún no se ha mencionado, cpanminus es un instalador de cpan zero-conf. Y puede descargar un ejecutable autónomo si no está disponible para su control de versión.

El ejecutable de cpanm se instala fácilmente (como se documenta en el ejecutable) con:

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

La primera vez que ejecute cpan desde la línea de comandos, se le solicitarán respuestas a varias preguntas. ¿Cómo se automatiza el cpan y se instalan los módulos de forma no interactiva desde el principio?


Cree su propio archivo de configuración CPAN.pm. Las versiones recientes del comando cpan tienen un cpan -J para volcar la configuración actual y un -j para cargar cualquier configuración que desee.


Estaba buscando una solución fácil para esto también y encontré que esto funciona:

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

Solo pensé que lo publicaría aquí en caso de que alguien más se presente.


Las versiones recientes de CPAN.pm preguntan como primera pregunta si el resto de la configuración debe ejecutarse automáticamente, por lo que es aconsejable actualizar primero CPAN.pm (manualmente): tarballs , repo .


Una forma es crear el CPAN / Config.pm (o ~ / .cpan / CPAN / MyConfig.pm) creado después de una ejecución desde un sistema, e instalarlo como ~ / .cpan / CPAN / MyConfig.pm en el sistema que quiero automatizar Otra forma es ejecutar lo siguiente para crear el archivo MyConfig.pm para usted (lo que falta a continuación son los valores reales para el parámetro urllist que deberá completar con los valores adecuados para los duplicados de 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;