2010-08-11 18 views

cevap

30
: Bir başka yöntem (bir şey aşağıda eksik Eğer CPAN aynalar için uygun değerlerle doldurmak zorunda kalacak urllist parametresi için gerçek değerler ise) sizin için MyConfig.pm dosyası oluşturmak için aşağıdaki çalıştırmaktır

Henüz belirtilmediğinden, cpanminus sıfır uyumlu bir cpan yükleyicisidir. Sürüm denetiminiz için uygun değilse kendi kendine yeterli bir yürütülebilir dosyayı indirebilirsiniz. ile

(yürütülebilir kendisi belgelenmiştir gibi) kolayca yüklenir cpanm yürütülebilir:

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

Ben cpanminus :-) – runrig

+0

cpanminimus sattığımı düşünüyorum Dockerfiles – BitByteDog

5

Tek bir sistemden sonra oluşturulan CPAN/Config.pm (veya ~/.cpan/CPAN/MyConfig.pm) yöntemini almanız ve ~/.cpan/CPAN/MyConfig.pm olarak yüklemeniz gerekir. Otomatikleştirmek istediğiniz sistemde.

#!/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; 
6

Kendi CPAN.pm yapılandırma dosyası olun. cpan komutunun son sürümlerinde, geçerli yapılandırmayı boşaltmak için bir -J anahtarına ve istediğiniz yapılandırmayı yüklemek için bir -j anahtarına sahip olursunuz.

+0

için teşekkürler. -j ve -J ile ilgili hiç bir şey bilmiyordum -J – runrig

5

CPAN.pm'nin son sürümleri, yapılandırmanın geri kalanının otomatik olarak çalıştırılıp çalıştırılmayacağı sorusunun ilk sorusunu sorar. Bu nedenle, önce CPAN.pm (manuel olarak) yükseltme yapılması önerilir: tarballs, repo.

25

Ben de bunun için kolay bir çözüm arayan ve bu çalıştığını tespit edildi:

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

Sadece ben başka durumda herkes buradan sonrası düşündüm geliyor boyunca.

+3

Bu, Docker'da yapılandırılmış cpan'ı almak için güzel bir şekilde çalıştı. – Sobrique

+3

mayın sadece echo | cpan', çünkü ilk soru mümkün olduğu kadar otomatikleştirildi [evet]? ' – activedecay

İlgili konular