2010-08-11 40 views

Trả lời

30

Vì nó chưa được đề cập, cpanminus là trình cài đặt cpan zero-conf. Và bạn có thể tải xuống tệp thực thi độc lập nếu không có sẵn để kiểm soát phiên bản của bạn.

Các cpanm thực thi có thể dễ dàng cài đặt (như tài liệu trong thực thi chính nó) với:

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

Tôi nghĩ rằng tôi được bán trên cpanminus :-) – runrig

+0

cpanminimus lưu ngày cho Dockerfiles của tôi – BitByteDog

5

Một cách là lấy CPAN/Config.pm (hoặc ~/.cpan/CPAN/MyConfig.pm) được tạo sau một lần chạy từ một hệ thống và cài đặt nó dưới dạng ~/.cpan/CPAN/MyConfig.pm trên hệ thống bạn muốn tự động hóa. Một cách khác là chạy phần sau để tạo tệp MyConfig.pm cho bạn (một điều bị thiếu bên dưới là giá trị thực của tham số urllist mà bạn sẽ phải điền bằng các giá trị thích hợp cho gương 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; 
6

Tạo file CPAN.pm cấu hình của riêng bạn. Các phiên bản gần đây của lệnh cpan có công tắc -J để ngắt cấu hình hiện tại và chuyển đổi -j để tải bất kỳ cấu hình nào bạn muốn.

+0

Cảm ơn. Tôi không biết về -j và -J – runrig

5

Phiên bản CPAN.pm gần đây đặt câu hỏi đầu tiên cho dù phần còn lại của cấu hình có được chạy tự động hay không, vì vậy bạn nên nâng cấp CPAN.pm (thủ công) trước: tarballs, repo.

25

tôi đang tìm kiếm một giải pháp dễ dàng cho việc này như là tốt và phát hiện ra rằng công trình này:

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

Chỉ cần nghĩ rằng tôi sẽ đăng nó ở đây trong trường hợp bất cứ ai khác đi kèm theo.

+3

Điều này làm việc tốt để có được cấu hình cpan trong Docker. – Sobrique

+3

của tôi chỉ là 'echo | cpan', bởi vì câu hỏi đầu tiên là "tự động hóa càng nhiều càng tốt [yes]?" – activedecay

Các vấn đề liên quan