【问题标题】:How to automate module installation from a local MiniCPAN repository?如何从本地 MiniCPAN 存储库自动安装模块?
【发布时间】:2011-05-07 22:30:01
【问题描述】:

在脚本中让 CPAN 与 MiniCPAN 存储库一起工作时遇到问题(目标是一个代码部署系统,用于构建本地模块和来自 CPAN 的模块,安装到本地库,然后同步到服务器)

$HOME/.cpan/CPAN/MyConfig.pm 存在,urllist 设置为['file:///home/user/minicpan/']

(非 CPAN)模块分发已成功注入到 minicpan 存储库中,并且文件存在:例如/home/user/minicpan/authors/U/US/USER/My-Module-0.01.tar.gz.

作者在.../01mailrc.txt.gz,模块在.../modules/02packages.details.txt.gz

通过 cpan shell 找到并安装该模块。

通过以下代码失败:

CPAN::HandleConfig->load;
CPAN::Shell::setup_output;
CPAN::Index->reload;

# dumping config here shows urllist set correctly,
# and config exactly the same as through shell
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
print Dumper($CPAN::Config);

CPAN::Shell->install("My::Module");

找不到模块 ("Cannot install My::Module, don't know what it is.") 或声明是最新的 (My::Module is up to date (0.01))

模块没有安装在本地库中(也没有安装在机器上的任何其他地方,例如在 /usr/... 中) Local-lib 环境变量通过设置 eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/locallib) 在 bash 配置文件中

在出现任何一个错误(包括“模块是最新的”)后,shell 中的正常“安装”会像perl -MCPAN -e "install My::Module" 一样正常工作,所以我认为是配置设置不正确,而是 CPAN。 pm 文档很难理解...

(CPAN.pm 是 v1.9402)

【问题讨论】:

  • 对 CPANPLUS 也没有运气...最终使用 App::cpanminus 和新的 '--mirror-only' 选项(在 v.1001 中)
  • 当您说“注入”时,您是如何向 MiniCPAN 注入的?您是否只是在原地复制文件而不更新索引?

标签: perl cpan minicpan


【解决方案1】:

试试:

#!/usr/bin/perl -w

system <cpan install My::Module>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2010-12-24
    相关资源
    最近更新 更多