2012-03-02 61 views
2

使用cpan命令工作得很好,如从Linux命令行安装Perl模块文档:的perldoc未示出用于安装perl模块

$ cpan [Module] 

和精加工余可以通过查看模块的文档后:

$ perldoc [Module] 

但通过cfengine这样做,这只是自动化脚本cpan命令(在 shellcommands:列表),该模块被安装,但perldoc不会为它工作:

$ perldoc Text::Histogram 
No documentation found for "Text::Histogram".* 

然而,调用:

$ man Text::Histogram 

会工作得很好。

为此设置一个通用环境变量(如perldoc手册页建议的)似乎不可行,因为我观察到.pm文件被放置在非常不同的地方。

有关此的任何提示?

+1

当您尝试运行常规cpan命令时,您是否正在使用不同的用户(比cfengine)? – summea 2012-03-02 23:06:04

+1

你的系统上是否有多个'perl',但可能只有一个'perldoc'?试试'perl $(which perldoc):: Module'。 – mob 2012-03-02 23:18:46

+0

虽然我想知道这个问题的答案,但如果它与'man'一起使用,你需要什么'perldoc'?只是好奇。嗯...也许如果你安装了[pmtools套件](http://search.cpan.org/dist/pmtools-1.10/),我可能会询问有关冲突的manpaths和'@ INC'路径。 – tchrist 2012-03-03 16:50:11

回答

2

perldoc搜索Perl模块包含路径(@INC)。如果perldoc找不到它,perl找不到它。尝试perl -wle 'use The::Module'以查看perl是否可以加载它。如果它可以找到它,那么奇怪的事情正在发生。

如果你通过第三方程序安装了一个模块(即使它只是使用cpan客户端),它会被安装到不同的位置和/或使用不同的perl,重新使用命令行。有许多原因,这三个最有可能的是...

  • 它有不同的PATH比你发现的cpan不同的副本不同的perl
  • 它将cpan客户端配置为不同,以安装到不同的PATH
  • cpan被配置为安装在主目录下,并且以不同的用户身份运行。

该模块还有一个奇怪的机会没有文档。

你可以看到perldoc正在做什么来找到perldoc -D The::Module模块(这可能是旧版本的-v)。