不使用CPAN :: Mini从本地镜像安装CPAN模块

时间:2015-01-12 19:01:23

标签: perl cpan

在我公司的某些计算机中,只有IE可以访问Internet。所以我想知道我是否可以在本地镜像中拥有一些CPAN模块的本地副本。我听说CPAN::Mini模块可以将本地镜像与公共镜像同步。

如何使用IE手动下载镜像中我想要的模块,并配置cpan以在本地查找模块?

修改

我无法使用CPAN :: Mini或其他类似工具,因为只有IE才能访问互联网。我需要先通过IE复制我的镜像。

2 个答案:

答案 0 :(得分:1)

如果您只想要CPAN的部分镜像,可以使用OrePAN2轻松完成此操作。

orepan2-inject --simple Module::Name /path/to/darkpan/

这也将为您生成02packages文件,CPAN客户端可以读取。

orepan2-inject --simple Carton darkpan
Wrote 1 from Carton
[INFO] Could not find useful meta from 'darkpan/authors/id/D/DU/DUMMY/Carton-    v1.0.12.tar.gz'
[INFO] Scanning for provided modules...
/tmp/foo ∙ tree darkpan/
darkpan/
├── authors
│   └── id
│       └── D
│           └── DU
│               └── DUMMY
│                   └── Carton-v1.0.12.tar.gz
├── modules
│   └── 02packages.details.txt.gz
└── orepan2-cache.json

答案 1 :(得分:1)

CPAN :: Mini使用LWP获取文件。问题的关键在于这个简单的界限:

my $res = $self->{__lwp}->mirror($remote_uri, $local_file);

这只是来自LWP::UserAgentmirror。想出一个替代方法,使用IE代替,也许使用Win32::OLE来驱动IE,你就是。 CPAN::Mini可以对获取文件的东西使用一点依赖注入。

曾经有一个名为Win32 :: Mechanize :: IE的工具,但stopped working with the new IE8 security module

或者,我会探索使内部LWP对象看起来像IE的方法。我不知道您的代理或网络的详细信息,但我敢打赌,您可以从LWP伪造一些神奇的标题或设置。例如,请参阅HTTPS Proxy and LWP::UserAgent。我不得不相信IE可以访问互联网。

作为最后的努力,请向Windows管理员提供一些啤酒。结交朋友并保存一些编码。 :)


我可能已经完成了依赖注入工作了但是我没有发现源已经被Dist :: Zilla无意义变态。我从来没有特别关心人们使用什么工具,只要他们不强迫我使用相同的工具,并且文字源代码不依赖于外部工具的要求。

通过使协作的障碍如此之高,人们正在抛弃参与酷儿童桌的座位。我只是觉得很糟糕,因为我不认为人们会实现这种权衡。当他们决定不帮忙时,没有人告诉你。他们根本没有帮助,你没有意识到你放弃了他们本可以贡献的所有时间。