【问题标题】:'perlbrew list-modules' does return 'Perl' and nothing else'perlbrew list-modules' 确实返回 'Perl' 而没有别的
【发布时间】:2019-01-23 13:28:31
【问题描述】:

我已经安装了 ubuntu 16.04,并且我安装了 perl 5.8.7、5.18.2 都激活了线程,并且安装了 5.18.1 没有线程。 目的是使用带有线程而不是 fork 的 Perl 版本,因为我已经使用 threds 完成了多个脚本,并且 forks 不是适当的多线程模型(它只是 fork 进程)。 我遇到的第一个问题是通过 cpanm -fi [name_of_module] 命令安装模块时。事实上,该命令根本不会返回任何东西!只是'Perl'。当我准备在我的脚本中安装我希望使用的 wathever 模块时,也会发生同样的情况。 我认为这个问题与我能够在没有 sudo 的情况下运行脚本(例如 perl [name_of_the_script])时使用“treads”这一事实有关,而当我使用“sudo perl [name_of_the_script]”运行它时说'当前版本的 Perl 不支持线程'! 这很奇怪。 perlbrew 环境变量设置正确,当我输入“which perl”时,系统会按预期指向新版本目录。

不知道该怎么做

【问题讨论】:

    标签: multithreading perlbrew


    【解决方案1】:

    我看到您在一段中发布了几个问题。我会尽量回答我能回答的问题。

    cpanm -fi XXX 不“返回任何东西”

    我不确定我是否得到这部分。如果XXX 安装失败,屏幕上应该会有一些错误信息。 perlbrew list-modules 只打印 Perl 的事实意味着可能没有安装任何内容。

    可能是您的 cpanm 可执行文件是为系统 perl 隐式安装的东西。您可以通过检查head =cpanm 的第一行来验证这一点。如果不是#!/usr/bin/env perl,则可能是错误的。您希望通过以下方式安装:perlbrew install-cpanm

    sudo perl

    我想知道您的 PATH 是否真的设置正确 -- 在 perlbrew use 5.8.7 之后运行 perl -V 可以向您显示足够的版本信息,从而告诉您 perlbrew 本身是否正常工作。

    您可能还需要sudo -E perl。 sudo 重置环境变量,除非你要求它不要这样做(-E 选项),并且可能需要 PERL5LIB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 2021-11-02
      • 1970-01-01
      • 2012-07-11
      • 2013-10-28
      • 1970-01-01
      相关资源
      最近更新 更多