首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在[Windows子系统Linux]中安装perl模块

在[Windows子系统Linux]中安装perl模块
EN

Stack Overflow用户
提问于 2016-12-16 16:58:37
回答 2查看 5.5K关注 0票数 5

我想在Windows10 (WSL)下的Linux环境中使用Perl脚本。我已经启用了WSL,安装了编译器(gccmake),执行了sudo apt-get install build-essential。Perl正在工作,我可以运行简单的脚本。当我试图安装perl模块时,问题就开始了。例如,我试图通过运行LWP来添加perl -MCPAN -e'install "LWP"'。它提供了大量的错误/警告消息,从Warning: the following files are missing in your kit:开始。整个输出太大,无法粘贴到这里,所以我必须将其放在其他地方:http://pastebin.com/RRRedwbG。简而言之,不管包如何,所有的.pm和.t文件都被认为是丢失的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-16 17:29:37

github.com/Microsoft/BashOnWindows/issues/186找到的解决方案

  1. 运行sudo apt-get install liblocal-lib-perl cpanminus build-essential
  2. 编辑/usr/lib/perl/5.18.2/Config.pm (第94行),使其具有dont_use_nlink => 1
  3. eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"
票数 6
EN

Stack Overflow用户

发布于 2016-12-16 17:50:05

在unix文件系统中,目录的.是指向自身的硬链接,而目录的..是指向其父目录的硬链接。因此,当您stat一个目录时,stat返回的链接计数至少是1 (name) + 1 (.) + $num_sub_dirs (..)

代码语言:javascript
运行
复制
$ ls -ld .
drwx------ 5 ikegami ikegami 46 Dec 16 12:03 .    # 5 = Could have up to three subdirs

$ ls -l .
total 0
drwx------ 2 ikegami ikegami 10 Dec 16 12:03 a    # 2 = No subdirs
drwx------ 3 ikegami ikegami 24 Dec 16 12:03 b    # 3 = Could have up to one subdir
drwx------ 2 ikegami ikegami 10 Dec 16 12:03 c    # 2 = No subdirs

文件::Find在可能的情况下依赖于该信息来优化自身。

Perl和file::FindW知FAT和NTFS文件系统不是这种情况,所以在Windows上禁用了优化。然而,在他们看来,VSL就像一个Linux系统,因此他们错误地假设他们在处理unix文件系统。

最好的解决方法是编辑由以下命令的输出命名的文件:

代码语言:javascript
运行
复制
perl -MConfig -e'CORE::say $INC{"Config.pm"}'

变化

代码语言:javascript
运行
复制
dont_use_nlink => undef

代码语言:javascript
运行
复制
dont_use_nlink => 1

您可以使用

代码语言:javascript
运行
复制
$ perl -V:dont_use_nlink
dont_use_nlink='1';

这个答案是基于这个错误报告的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41189089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档