La primera vez que ejecuta 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?¿Cómo automatizo la configuración de CPAN?
Respuesta
Como no se ha mencionado aún, cpanminus es un instalador de configuración cero de conf. Y puede descargar un ejecutable autónomo si no está disponible para su control de versión.
El ejecutable cpanm se instala fácilmente (como se documenta en el propio ejecutable) con:
curl -L http://cpanmin.us | perl - --self-upgrade
# or
wget -O - http://cpanmin.us | perl - --self-upgrade
Una forma es tomar 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 quieres automatizar Otra forma es ejecutar el siguiente para crear el archivo MyConfig.pm para usted (una cosa que falta es a continuación los valores reales para el parámetro urllist el que tendrá que rellenar con los valores apropiados para los espejos 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: [email protected]";
}
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;
Haga su propio archivo de configuración CPAN.pm. Las versiones recientes del comando cpan
tienen un interruptor -J
para volcar la configuración actual y un interruptor -j
para cargar cualquier configuración que desee.
Gracias. No sabía sobre -j y -J – runrig
que 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
sólo pensé que iba a publicar aquí por si alguien más llega.
Esto funcionó muy bien para configurar el cpan en Docker. – Sobrique
mina era solo 'eco | cpan', porque la primera pregunta fue '" ¿automatizar tanto como sea posible [sí]? "' – activedecay
- 1. ¿Cómo automatizo Chrome usando WatiN?
- 2. ¿Cómo automatizo namevaluecollection en una clase fuertemente tipada?
- 3. ¿Cómo eliminar un módulo de CPAN?
- 4. error al ejecutar cpan la primera vez
- 5. ¿Cómo configuro un espejo CPAN local?
- 6. Instalación de módulos CPAN sin raíz
- 7. ¿Cómo reconstruir/reinstalar dependencias de un módulo de CPAN actualizado?
- 8. ¿Cómo se leen los registros de cambios de CPAN?
- 9. Cómo decirle a CPAN sobre la ruta a realizar y cc
- 10. ¿Cómo instalo los módulos de CPAN mientras uso perlbrew?
- 11. ¿Cómo puedo actualizar el módulo de otra persona en CPAN?
- 12. ¿Cómo puedo instalar distribuciones de scripts desde CPAN?
- 13. ¿Cómo puedo encontrar archivos que usan ciertos módulos en CPAN?
- 14. ¿Cuál es la diferencia entre módulo y distribución en CPAN?
- 15. ¿Cómo puedo instalar un módulo CPAN en un directorio local?
- 16. ¿Cómo actualizo todos mis módulos CPAN a sus últimas versiones?
- 17. Cómo cambiar la configuración LAN (configuración de proxy) programáticamente
- 18. ¿Cómo pasar las credenciales en la configuración de configuración defaultProxy?
- 19. Ayuda de actualización de Perl y CPAN para OS X
- 20. Configuración de la configuración regional de Java
- 21. CPAN de Perl módulos instalador no encontrar archivo tar
- 22. ¿Cómo guardar la configuración de GVIM?
- 23. Cómo comparar la configuración de apache/nginx
- 24. ¿Cómo leo la configuración de Symfony2 config.yml?
- 25. ¿Cómo cambiar la configuración predeterminada de $ .ajax()?
- 26. ¿Cómo se automatiza la configuración de Eclipse?
- 27. ¿Cómo cambiar la configuración de advertencia?
- 28. Instalación de módulo perl: cpan shell frente a rpm/deb
- 29. ¿Cómo instalo un módulo de CPAN en todo el sitio mientras está presente local :: lib?
- 30. ¿Desarrolla sus aplicaciones Perl como módulos de CPAN?
Creo que estoy vendido en cpanminus :-) – runrig
cpanminimus salvó el día para mi Dockerfiles – BitByteDog