簡體   English   中英

perl 安裝,cpan install true.pm 失敗

[英]perl installation, cpan install true.pm fails

我是一個 perl 新手,我對系統知之甚少。

我正在嘗試安裝似乎依賴於 true 的 App/Lingua/BO/Wylie/Transliteration.pm。

我在安裝 true 時遇到錯誤。 這似乎很令人驚訝,所以我對 perl 安裝的一些非常基本和錯誤的問題持開放態度。 在 MacOS 11.3.1 上運行 perl v5.30.2。

cpan 錯誤日志:

force install true.pm                                                         
Running install for module 'true'
  CHOCOLATE/true-v1.0.2.tar.gz
  Has already been unwrapped into directory /Users/phil/.cpan/build/true-v1.0.2-0
  CHOCOLATE/true-v1.0.2.tar.gz
  Has already been prepared
Running make for C/CH/CHOCOLATE/true-v1.0.2.tar.gz
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- true.bs blib/arch/auto/true/true.bs 644
cc -c  -I/Users/phil/perl5/lib/perl5/darwin-thread-multi-2level/B/Hooks/OP/Annotation/Install -I/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/B/Hooks/OP/Check/Install -g -pipe -fno-strict-aliasing -fstack-protector-strong -DPERL_USE_SAFE_PUTENV -O3 -Wall -W   -DVERSION=\"v1.0.2\" -DXS_VERSION=\"v1.0.2\"  -iwithsysroot "/System/Library/Perl/5.30/darwin-thread-multi-2level/CORE"   true.c
true.xs:8:10: fatal error: 'hook_op_check.h' file not found
#include "hook_op_check.h"
         ^~~~~~~~~~~~~~~~~
1 error generated.
make: *** [true.o] Error 1
  CHOCOLATE/true-v1.0.2.tar.gz
  /usr/bin/make -- NOT OK
Failed during this command:
 CHOCOLATE/true-v1.0.2.tar.gz                 : make NO

true.xs:8:10:致命錯誤:找不到“hook_op_check.h”文件

這看起來像是 macOS 上預裝的系統 Perl 安裝中的錯誤。 模塊B::Hooks::OP::Check預裝在/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/B/Hooks/OP/但文件/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/B/Hooks/OP/Check/Install/hook_op_check.h由於某種原因丟失。 因此,無法安裝依賴於該文件的模塊true

您可以通過運行覆蓋預安裝的版本:

$ cpan -f B::Hooks::OP::Check

如果您將sudocpan一起使用,這會將模塊安裝到/Library/Perl/5.30/darwin-thread-multi-2level/B/Hooks/OP中,或者安裝到~/perl5/lib/perl5/darwin-thread-multi-2level/B/Hooks/OP如果您將local::libcpan一起使用。 由於 perl @INC包含路徑的順序,后一種安裝將在預安裝版本之前找到,因此它將覆蓋模塊的預安裝版本。

這將使您能夠安裝模塊true ,但安裝后App::Lingua::BO::Wylie::Transliteration的安裝仍然失敗:

$ cpan App::Lingua::BO::Wylie::Transliteration
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/Users/hakonhaegland/.cpan/Metadata'
  Database was generated on Sat, 01 Jan 2022 22:29:03 GMT
Running install for module 'App::Lingua::BO::Wylie::Transliteration'
Fetching with LWP:
http://www.cpan.org/authors/id/D/DB/DBR/App-Lingua-BO-Wylie-Transliteration-0.1.0.tar.gz
Fetching with LWP:
HASH(0x13444b3c8)authors/id/D/DB/DBR/CHECKSUMS
Fetching with LWP:
HASH(0x13444b3c8)authors/id/D/DB/DBR/CHECKSUMS.gz
Fetching with LWP:
http://www.cpan.org/authors/id/D/DB/DBR/CHECKSUMS
Checksum for /Users/hakonhaegland/.cpan/sources/authors/id/D/DB/DBR/App-Lingua-BO-Wylie-Transliteration-0.1.0.tar.gz ok
Configuring D/DB/DBR/App-Lingua-BO-Wylie-Transliteration-0.1.0.tar.gz with Build.PL
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'App-Lingua-BO-Wylie-Transliteration' version '0.1.0'
  DBR/App-Lingua-BO-Wylie-Transliteration-0.1.0.tar.gz
  /usr/bin/perl Build.PL -- OK
Running Build for D/DB/DBR/App-Lingua-BO-Wylie-Transliteration-0.1.0.tar.gz
Building App-Lingua-BO-Wylie-Transliteration
  DBR/App-Lingua-BO-Wylie-Transliteration-0.1.0.tar.gz
  ./Build -- OK
Running Build test for DBR/App-Lingua-BO-Wylie-Transliteration-0.1.0.tar.gz
t/00-check-deps.t ........ ok
t/00-load.t .............. 1/1
#   Failed test 'use App::Lingua::BO::Wylie::Transliteration;'
#   at /Library/Perl/5.30/Test/UseAllModules.pm line 71.
#     Tried to use 'App::Lingua::BO::Wylie::Transliteration'.
#     Error:  Couldn't find declarator 'method' at /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/Devel/Declare/Context/Simple.pm line 47.
#   Devel::Declare::Context::Simple::skip_declarator(Method::Signatures::Simple=HASH(0x12704f6d8)) called at /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/Devel/Declare/MethodInstaller/Simple.pm line 62
#   Devel::Declare::MethodInstaller::Simple::parser(Method::Signatures::Simple=HASH(0x12704f6d8), "method", 0, 1) called at /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/Devel/Declare/MethodInstaller/Simple.pm line 25
#   Devel::Declare::MethodInstaller::Simple::__ANON__("method", 0) called at /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/Devel/Declare.pm line 277
#   Devel::Declare::linestr_callback("const", "method", 0) called at lib/App/Lingua/BO/Wylie/Transliteration.pm line 37
#   require App/Lingua/BO/Wylie/Transliteration.pm called at /Library/Perl/5.30/Test/UseAllModules.pm line 71
#   Test::UseAllModules::BEGIN() called at lib/App/Lingua/BO/Wylie/Transliteration.pm line 37
#   eval {...} called at lib/App/Lingua/BO/Wylie/Transliteration.pm line 37
#   eval 'package Test::UseAllModules;
# BEGIN { ${^WARNING_BITS} = $args[-1] if defined $args[-1] }
# #line 71 /Library/Perl/5.30/Test/UseAllModules.pm
# use App::Lingua::BO::Wylie::Transliteration @{$args[0]};
# 1;
# ' called at /System/Library/Perl/5.30/Test/More.pm line 1034
#   Test::More::_eval("package Test::UseAllModules;\x{a}BEGIN { \${^WARNING_BITS} = \$args"..., ARRAY(0x1268938e0), "UUUUUUUUUUUUUUUUUUU") called at /System/Library/Perl/5.30/Test/More.pm line 1009
#   Test::More::use_ok("App::Lingua::BO::Wylie::Transliteration") called at /Library/Perl/5.30/Test/UseAllModules.pm line 71
#   Test::UseAllModules::all_uses_ok() called at t/00-load.t line 4
#   main::BEGIN() called at lib/App/Lingua/BO/Wylie/Transliteration.pm line 37
#   eval {...} called at lib/App/Lingua/BO/Wylie/Transliteration.pm line 37
# Compilation failed in require at /Library/Perl/5.30/Test/UseAllModules.pm line 71.
# BEGIN failed--compilation aborted at /Library/Perl/5.30/Test/UseAllModules.pm line 71.
Bailout called.  Further testing stopped:  failed: App::Lingua::BO::Wylie::Transliteration

這是由於最近對Devel::Declare的更改以及這些錯誤報告report1report2中描述的bleed解析器的相應更改。

一種解決方法是安裝早期版本的perl和早期版本的Devel::Declare 您可以使用perlbrew來做到這一點。 例如:

$ perlbrew install perl-5.26.3
$ cpanm Devel::Declare@0.006019
$ cpanm App::Lingua::BO::Wylie::Transliteration

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM