Как автоматизировать начальную конфигурацию CPAN? - PullRequest
0 голосов
/ 13 августа 2010

Здесь Как автоматизировать настройку CPAN? Я нашел несколько ответов, которые привели к некоторым вопросам. Я попытался cpan -j config.pm , но, насколько я вижу, он предназначен для на установку , а не для постоянного изменения файла конфигурации.

С $ CPAN :: Config -методом принудительно CPAN :: FirstTime по умолчанию не по умолчанию -part не работал здесь, поэтому я попытался без него:

#!/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-mirror-urls. И что такое delete $ CPAN :: Config -> {links}; для?

1 Ответ

1 голос
/ 13 августа 2010

Похоже, вы делаете много работы. Что вы пытаетесь достичь?

Если вы хотите навсегда изменить файл конфигурации, просто измените файл конфигурации. Это Perl-код, поэтому я думаю, что вы можете сделать все, что вам нужно, например, установить корневой каталог, прямо в файле конфигурации, без необходимости иметь дело с CPAN.pm.

...