gpt4 book ai didi

linux - 在 [适用于 Linux 的 Windows 子系统] 中安装 perl 模块

转载 作者:IT王子 更新时间:2023-10-29 01:07:12 27 4
gpt4 key购买 nike

我想在 Windows 10 ( WSL) 下的 Linux 环境中使用 Perl 脚本。我启用了 WSL,安装了编译器(gccmake),执行了 sudo apt-get install build-essential。 Perl 正在运行,我可以运行简单的脚本。当我尝试安装 perl 模块时出现问题。例如,我试图通过运行 perl -MCPAN -e'install "LWP"' 添加 LWP。它会给出很多错误/警告消息,以 Warning: the following files are missing in your kit: 开头。完整的输出太大无法粘贴在这里,所以我不得不把它放在别处:http://pastebin.com/RRRedwbG .总之,不管是什么包,所有的.pm和.t文件都视为丢失。

最佳答案

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

$ 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

File::Find 依靠该信息在可能的情况下优化自身。

Perl 和 File::Find 知道 FAT 和 NTFS 文件系统不是这种情况,因此优化在 Windows 上被禁用。然而,VSL 对他们来说看起来像一个 Linux 系统,因此他们错误地认为他们正在处理一个 unix 文件系统。

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

perl -MConfig -e'CORE::say $INC{"Config.pm"}'

改变

dont_use_nlink => undef

dont_use_nlink => 1

您可以使用

验证更改
$ perl -V:dont_use_nlink
dont_use_nlink='1';

此答案基于 this bug report .

关于linux - 在 [适用于 Linux 的 Windows 子系统] 中安装 perl 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41189089/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com