从没有 CPAN::Mini 的本地镜像安装 CPAN 模块



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

如何使用 IE 在镜像中手动下载所需的模块,并将cpan配置为在本地查找模块?

编辑

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

如果你只是想要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

CPAN::Mini 使用 LWP 来获取文件。问题的实质是这句简单的台词:

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

这只是来自LWP::UserAgent的mirror。想出一种使用 IE 的替代方法,也许使用 Win32::OLE 来驱动 IE,你就在那里。CPAN::Mini可以为获取文件的东西使用一些依赖注入。

曾经有一个名为Win32::Mechanize::IE的工具,但它停止与新的IE8安全模块一起使用。

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

作为最后的努力,带一些啤酒给Windows管理员所有的权力。交一个朋友并保存一些编码。:)


如果我没有发现源代码被 Dist::Zilla 废话歪曲,我可能会完成依赖注入工作。我从来没有特别关心人们使用什么工具,只要他们不强迫我使用相同的工具,并且文字源代码不依赖于外部工具的要求。

人们已经到了这样的地步,人们正在抛弃参与,在很酷的孩子们的餐桌上占有一席之地,使协作的障碍如此之高。我只是把它弄得很臭,因为我认为人们没有意识到这种权衡。没有人告诉你他们什么时候决定不帮忙。他们根本就没有帮助,你没有意识到你放弃了他们本可以贡献的所有时间。

最新更新