无法在Perl5.32.0MacOSSierra上安装Test::File

我正在尝试DateTime在我的 perlbrew 5.32.0上安装,但对其依赖项的测试Test::File失败了。重要的部分如下:

t/owner.t ..................... # File [blib] belongs to 703404669 (729761796), not 703404669 (703404669)!
t/owner.t ..................... 1/? 
#   Failed test 'owner_is with text username'
#   at t/owner.t line 99.

#   Failed test 'Intentional owner_isnt failure'
#   at t/owner.t line 146.
# STDOUT is:
# > ok 1 - blib doesn't belong to 703404669
# not:
# > not ok 1 - blib doesn't belong to 703404669
# as expected
# STDERR is:
# > 
# > 
# > 
# not:
# > # File [blib] belongs to 703404669 (729761796)!
# > #   Failed test 'blib doesn't belong to 703404669'
# > #   at t/owner.t line 145.

我之前遇到过类似的错误,但我~/.cpan目录中的几乎每个包都有一个,blib所以我不确定 cpan 正在谈论哪个目录。

我的操作系统是 MacOS Sierra 10.12.6 (16G2136)

如何解决这些错误以进行安装DateTime

回答

tl;dr:您在依赖项中发现了一个错误。它仅用于测试。您可以忽略失败的测试,强制安装 Test::File,然后继续安装 DateTime。

cpan -f -i Test::File
cpan DateTime
# File [blib] belongs to 703404669 (729761796), not 703404669 (703404669)!

问题是您的用户名是一个数字,而 Test::File 似乎没有考虑到这一点。

owner_is检查文件是否归给定用户所有。它接受用户名或数字用户 ID。如果给定一个数字,则它假定它是一个数字 ID。如果 703404669 是您的用户名,它会混淆并将其用作用户 ID。您的用户 ID 确实是 729761796。703404669 != 729761796。

Test::File 可以通过首先验证getpwuid和/或检查来防止这种歧义getpwnam

恭喜,您在 Test::File 中发现了一个错误。请举报。


以上是无法在Perl5.32.0MacOSSierra上安装Test::File的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>