2010-08-13 1 views
0

여기 How do I automate CPAN configuration? 몇 가지 질문에 대한 답변을 찾았습니다. 나는 cpan -j config.pm을 시도했지만, 내가 볼 수있는 한, 설치 당 사용법을 의미하며, 설정 파일을 영구적으로 변경하는 것이 아닙니다.어떻게 초기 CPAN 구성을 자동화합니까?

#!/usr/bin/perl 
use strict; 
use warnings; 
use Config; 
use CPAN; 
use CPAN::FirstTime; 

$ENV{PERL_MM_USE_DEFAULT}=1; 
$ENV{PERL_MM_NONINTERACTIVE}=1; 
$ENV{AUTOMATED_TESTING}=1; 

my $cpan_home = '/home/me/.cpan'; 

mkdir $cpan_home or die $! if not -d $cpan_home; 
mkdir "$cpan_home/CPAN" or die $! if not -d "$cpan_home/CPAN"; 

CPAN::FirstTime::init("$cpan_home/CPAN/MyConfig.pm"); 

delete $CPAN::Config->{links}; 

$CPAN::Config->{applypatch} = ''; 
# ... 
$CPAN::Config->{build_dir} = "$cpan_home/build"; 
$CPAN::Config->{cpan_home} = $cpan_home; 
$CPAN::Config->{histfile} = "$cpan_home/histfile"; 
$CP$CPAN::Config->{keep_source_where} = "$cpan_home/sources"; 
$CPAN::Config->{make_install_make_command} = 'sudo make'; 
$CPAN::Config->{mbuild_install_build_command} = 'sudo ./Build'; 
$CPAN::Config->{prefs_dir} = "$cpan_home/prefs"; 
# ... 
$CPAN::Config->{yaml_module} = 'YAML'; 

CPAN::HandleConfig->commit("$cpan_home/CPAN/MyConfig.pm"); 

CPAN::install('Bundle::CPAN'); 
# ... 
# etc. 

exit 0; 

이인가 다음 $ CPAN :: 구성

하지 그래서 그것을하지 않고 시도 여기에 작동하지 않았다 part의 매뉴얼에 기본값으로 FirstTime :: 힘 CPAN을 -method 승인? 내가 지금까지 알아 차린 유일한 나쁜 점은 cpan-mirror-urls가 발견 될 때까지 기다리는 것입니다. 그리고 무엇이 $ CPAN :: Config -> {links}을 삭제하십시오;?

답변

1

많은 일을하고있는 것처럼 보입니다. 무엇을 성취하려고합니까?

구성 파일을 영구적으로 변경하려면 구성 파일 만 변경하십시오. Perl 코드이므로 CPAN을 다루지 않고 config 파일에서 루트 디렉토리를 설정하는 것과 같이 필요한 모든 것을 할 수 있다고 생각합니다.

+0

새 Linux 버전을 설치하면 가능한 한 손쉽게 구성을 덜고 싶습니다. 필자는 그러한 스크립트가 Config 파일을 복사하는 것보다 우아하다고 생각했습니다. 그리고 구성과 모듈 설치를 하나의 스크립트로 할 수 있습니다. 하지만이 작업은 많은 작업처럼 보였으므로 시도해 보았습니다. #!/bin/bash mkdir -p ~/.cpan/CPAN mkdir -p ~/.cpan/build mkdir -p ~/.cpan/histfile mkdir -p ~/.cpan/sources cp MyConfig.pm ~/.cpan/CPAN cpan Moldule::1 Module::2 Module::3 하지만 희망대로 작동하지 않습니다. –

+0

이것은 질문에 추가하고 댓글에 숨기지 않는 것입니다. :) –