【问题标题】:Upgrade locally installed modules for the new Perl version [closed]为新的 Perl 版本升级本地安装的模块 [关闭]
【发布时间】:2015-10-28 14:34:50
【问题描述】:

我在~/lib 中安装了几个 CPAN 模块。显然,local::lib 被使用,CPAN 的默认值。

现在,我升级了我的 Perl 版本,但它不再看到这些模块了。

我知道它们可能需要从源代码重新构建,但只需以这种或另一种方式获取它们的列表并启动 CPAN 安装序列即可。

执行此操作的标准方法是什么?我确信必须有一个现有的设施来解决这种共同的需求。

(当然,已经浏览过 CPANlocal::lib 文档和网络)

更新:

查看~/lib 后,我发现模块实际上已经从那里消失了。我不知道他们去了哪里。评论显示“模块消失”通常不会发生。那么问题就来了。

【问题讨论】:

    标签: cygwin cpan perl


    【解决方案1】:

    首先,local::lib 与 CPAN 模块/发行版无关。也许您的意思是 cpan 默认安装到 local::lib 的目录,但事实并非如此。仅当它被配置为这样做时才会这样做。

    有趣的是,问题通常是升级后的 Perl 仍然可以看到 local::lib 的目录。 local::lib 使用INSTALL_BASE,它以某种方式安装模块,即该目录只能由安装 Perl 使用。这就是为什么我总是强烈推荐反对 local::lib 和INSTALL_BASE

    目录不再可见是一件好事。无论如何,您必须重新安装所有模块,这样就不会出现任何混淆。

    【讨论】:

    • “也许你的意思是 cpan 默认安装到 local::lib 的目录...” 没错。当我配置 CPAN 时,它提供了一些如何安装模块的选择,这是默认的。
    • 1) CPAN 是 Perl 自带的,所以不需要安装。 2) CPAN 对 install::lib 一无所知。它绝对不会默认使用它。如果这样做,我会举起地狱。
    • 好吧,我不知道他们去了哪里。我所知道的是我安装了例如Term::ReadLine::GnuLog::Log4Perl 前段时间,升级后它们不存在。我也可以自己不小心擦除它们(或者可能是 Cygwin)。
    • 那么,你是说这通常不会发生,所以我的情况不像我声称的那样是“共同需求”?
    • 回复。 local::lib,我认为 OP 是在谈论 this:“从 CPAN 1.9463 开始,如果您没有写入默认 perl 库目录的权限,CPAN 的配置过程会询问您是否要引导 " 如果您选择引导,PERL_MB_OPT 和 PERL_MM_OPT 在您的 .bashrc 或等效项中设置;引导是默认选项。
    猜你喜欢
    • 2013-05-20
    • 2015-05-07
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多