2
我打算創建一個空的本地CPAN目錄,然後用正確的版本號注入我需要的模塊。CPAN :: Mini :: Inject doesnt update 03modlist.data.gz
所以,我創建了一個CPAN結構CPAN ::迷你這樣的:
my $local = '/tmp/CPAN';
my $minicpan = CPAN::Mini->new(
remote => "http://mirrors4.kernel.org/cpan/",
local => $local,
passive => 'yes',
dirmode => 0755,
repository => $local,
module_filters => [ sub { $_[0] !~ m/No::Giro/i } ], #Thus us just to fetch this module only
trace => 1
);
mkdir($local."/authors") or die("Could not create authors folder");
mkdir($local."/modules") or die("Could not create modules folder");
my @files = ('authors/01mailrc.txt.gz', 'modules/02packages.details.txt.gz', 'modules/03modlist.data.gz');
foreach my $file (@files){
print "Creating file $local/$file \n";
open(FILE, "+> $local/$file") or die("Could not create $local/$file");;
close (FILE);
}
然後我嘗試注入與CPAN ::小::注入模塊:
use strict;
use warnings;
use Getopt::Long;
use CPAN::Mini::Inject;
my $module = undef;
my $authorid = undef;
my $version = undef;
my $file = undef;
GetOptions(
"module=s" => \$module,
"authorid=s" => \$authorid,
"version=s" => \$version,
"file=s" => \$file,
);
die ("--module not provided") if(!defined($module) || $module eq '');
die ("--authorid not provided") if(!defined($authorid) || $authorid eq '');
die ("--version not provided") if(!defined($version) || $version eq '');
die ("--file not provided") if(!defined($file) || $file eq '');
die("File $file does not exists") unless ((-e $file) || (-f $file));
my $mcpi = CPAN::Mini::Inject->new;
$mcpi->loadcfg('/tmp/minicpan.conf');
$mcpi->parsecfg();
$mcpi->readlist();
$mcpi->add(
module => $module,
authorid => $authorid,
version => $version,
file => $file);
$mcpi->inject(1);
$mcpi->writelist();
exit(0);
但03modlist.data.gz文件沒有得到更新(所以它是空的),所以當我嘗試使用cpan與本地存儲庫我得到和與此文件相關的錯誤。有誰知道如何生成一個有效的modlist文件?或者如何獲得CPAN :: Mini或CPAN :: Mini ::注入爲你做?
致以問候
嗨布萊恩,謝謝你的答案。它解決了我的一個問題,儘管我曾嘗試從CPAN服務器複製modlist文件。而且,因爲現在我在安裝模塊時遇到了錯誤,所以我的確認爲可能是modlist文件導致了這個問題。但顯然不是。 對於我的CPAN鏡像中的所有模塊,當我嘗試安裝時,出現此錯誤:「(測試-f」/root/.cpan/build/IBMTORDB2-1tPJN9/Makefile.PL「返回false。)」 即使makefile存在。你以前碰巧遇到過這種情況?再次感謝之前的回覆。 – Joakim 2011-04-07 08:22:40