【问题标题】:Can't locate XML/LibXML.pm and cpan not found the c compiler to generateCan't locate XML/LibXML.pm and cpan not found c compiler to generate
【发布时间】:2014-12-29 17:28:06
【问题描述】:

我在 Linux 机器中需要 LibXML,并且像其他帖子一样出现下一个错误:

Can't locate XML/LibXML.pm in @INC 

我看到了解决方案,但我遇到的问题是,当尝试使用 cpan 生成库时,显示未找到编译器的错误。我一直在寻找我的问题的答案,我找到了安装方法,使用 apt-get 或 mcpan,但没有获得 apt-get 或 aptitude 命令,我只能使用 ipkg install perl_libXML 或使用 cpan。

cpan 的错误是下一个:

perl -MCPAN -e shell
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v2.00)
Enter 'h' for help.

cpan[1]> install XML::LibXML
Reading '/root/.cpan/Metadata'
  Database was generated on Sat, 01 Nov 2014 19:17:02 GMT
Running install for module 'XML::LibXML'
Running make for S/SH/SHLOMIF/XML-LibXML-2.0117.tar.gz
Checksum for /root/.cpan/sources/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0117.tar.gz ok
Scanning cache /root/.cpan/build for sizes
............................................................................DONE

  CPAN.pm: Building S/SH/SHLOMIF/XML-LibXML-2.0117.tar.gz

Use of uninitialized value $config_val in pattern match (m//) at inc/Devel/CheckLib.pm line 372.
Couldn't find your C compiler
Compilation failed in require at Makefile.PL line 92.
BEGIN failed--compilation aborted at Makefile.PL line 92.
Warning: No success on command[/usr/bin/perl Makefile.PL]
  SHLOMIF/XML-LibXML-2.0117.tar.gz
  /usr/bin/perl Makefile.PL -- NOT OK
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
Could not read metadata file. Falling back to other methods to determine prerequisites
Failed during this command:
 SHLOMIF/XML-LibXML-2.0117.tar.gz             : writemakefile NO '/usr/bin/perl Makefile.PL' returned status 512

cpan[2]>

我不知道为什么使用 ipkg 安装正常,但安装后无法正常工作。我认为如果进程可以找到 c 编译器,使用 cpan 会起作用,但我不知道问题出在哪里,或者如何告诉 cpan 编译器的路径,或者是否需要安装它。

我尝试手动编译,这是结果,但我不明白为什么没有编译器,我有多个编译器和系统。 Ť他的错误是:

root@Linux: ~/.cpan/build/XML-LibXML-2.0117-tF5gWA # perl Makefile.PL DEBUG=1
Use of uninitialized value $config_val in pattern match (m//) at inc/Devel/CheckLib.pm line 372.
Couldn't find your C compiler
Compilation failed in require at Makefile.PL line 92.
BEGIN failed--compilation aborted at Makefile.PL line 92.
root@Kubyx: ~/.cpan/build/XML-LibXML-2.0117-tF5gWA #

你能帮我解决问题还是手工编译?

【问题讨论】:

  • 大多数 perl 模块不需要安装 C 编译器。这个可以。
  • 好的,我知道,但问题是我需要 cpan 找到编译器,我一直在寻找这个,我可以提供有关错误的更多信息,我在模块依赖项中看到这个错误,我可以用这个来播放错误: perl -MDevel::CheckLib Use of uninitialized value $config_val in pattern match (m//) at /usr/share/perl5/site_perl/Devel/CheckLib.pm line 369. 找不到你的C 编译器在 require 中编译失败。 BEGIN failed - 编译中止。”我认为编译器没问题,但一个模需要任何变量中的更多信息,但我不知道如何以及在哪里放置它
  • 你找到解决方案了吗……我面临同样的问题……

标签: linux perl synology xml-libxml


【解决方案1】:

我在安装 XML::Parser 时遇到了同样的错误:

Running install for module 'XML::Parser'
Checksum for /home/sss/.cpan/sources/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz ok
Configuring T/TO/TODDR/XML-Parser-2.46.tar.gz with Makefile.PL
Couldn't find your C compiler
Compilation failed in require at Makefile.PL line 4.
BEGIN failed--compilation aborted at Makefile.PL line 4.

但是我构建了一个 conda env 并由 conda 安装并且运行良好。可以很好地安装 XML::LibXML。

  • 构建并激活 conda env
conda create -n perl5 perl=5.26
conda activate perl5
  • 通过 conda 而不是 cpan 安装 XML::Parser,它将安装 XML::Parser 依赖库 expatlibxml2 auto。
conda install -c conda-forge/label/gcc7 perl-xml-parser
# conda install XML::LibXML may be work
conda install -c bioconda perl-xml-libxml
  • 测试包安装成功
perl -MXML::Parser -e ''
perl -MXML::LibXML -e ''

【讨论】:

    【解决方案2】:

    我找到了我系统的答案。

    x86_64-linux-gnu-gcc 是作为 perl 参数提供的 GCC 二进制文件的可执行文件。因此,一旦我的发行版 Ubuntu,Devel::CheckLib 就找不到 C 编译器,不要使用我正在使用的版本 gcc-5 创建 x86_64-linux-gnu-gcc 的替代品。

    解决方法是更改​​为 /usr/bin 并创建一个从 x86_64-linux-gnu-gcc 到 x86_64-linux-gnu-gcc-5 的符号链接。

    这不是我第一次需要符号链接到 GCC 的替代名称。 Ubuntu 发行版应该为所有可用的 gcc 版本创建一个替代品,并使用 update-alternatives 自动管理替代品。

    【讨论】:

      猜你喜欢
      • 2017-02-07
      • 2010-11-12
      • 2015-02-24
      • 2015-03-11
      • 1970-01-01
      • 2018-10-27
      • 2019-01-14
      • 1970-01-01
      • 2013-10-18
      相关资源
      最近更新 更多