如何在没有 expat-devel 的情况下安装 XML::Parser?
-
13-12-2019 - |
题
XML::Parser 无法在全新的 64 位 Debian 机器上构建。发出后 cpan XML::Parser
, ,cpan 失败,并出现许多有关 Expat.c 和 Expat.xs 的错误:
[...]
Expat.xs:2182: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.c: In function ‘XS_XML__Parser__Expat_Do_External_Parse’:
Expat.c:2904: error: ‘XML_Parser’ undeclared (first use in this function)
Expat.c:2904: error: expected ‘;’ before ‘parser’
Expat.xs:2194: error: ‘parser’ undeclared (first use in this function)
make[1]: *** [Expat.o] Error 1
make[1]: Leaving directory `/root/.cpan/build/XML-Parser-2.41-rpV6ok/Expat'
make: *** [subdirs] Error 2
TODDR/XML-Parser-2.41.tar.gz
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
输出开头的消息解释了这一点 外派发展 是建设所需要的。
在构建XML :: Parser之前,必须安装外籍人士,并且在标准库目录中找不到它。使用您的操作系统软件包管理器安装“ Expat-Devel”软件包。请参阅“自述文件”。
但 外派发展 不在 Debian 存储库中。
是否可以克服这个问题而无需从源代码构建/安装 expat ?
解决方案
您要安装的包名为 libexpat1-dev
. 。你也可以直接安装 libxml-parser-perl
通过 apt-get。或者,如果您确实想通过 CPAN 安装,请先尝试通过以下方式安装 Debian 软件包依赖项: apt-get build-dep libxml-parser-perl
.
其他提示
libexpat1-dev 包含 libexpat 和 expat.h,消息中也提到了它们:
如果已安装外籍人士,但在非标准目录中,请使用以下选项来makefile.pl:
EXPATLIBPATH=...设置在其中查找 libexpat 的目录
EXPATINC路径=...设置在其中查找 expat.h 的目录
安装 libexpat1-dev 似乎可以解决问题:
$ aptitude install libexpat1-dev
总是有手动方法 - 从源代码构建/安装 expat。(此示例显示安装到替代位置 Xampp |兰普)
下载地址:http://sourceforge.net/projects/expat/files/expat/
tar zxf /[where-ever]/expat-2.1.0.tar.gz -C /tmp
cd /tmp/expat-2.1.0
/opt/lampp/bin/perl ./configure --prefix=/opt/lampp LDFLAGS=-L/opt/lampp/lib
make
make install
http://search.cpan.org - 搜索并下载 - XML::Parser
tar zxf /[where-ever]/XML-Parser-2.41.tar.gz -C /tmp
cd /tmp/XML-Parser-2.41
/opt/lampp/bin/perl ./Makefile.PL EXPATLIBPATH=/opt/lampp/lib EXPATINCPATH=/opt/lampp/include
make
make test
make install
在 Ubuntu 15.04 中像魅力一样工作。我唯一需要的是安装 Perl XML Parser:
sudo apt-get install libxml-parser-perl
按照此处的说明,我能够成功地将所有评分导入 Rhythmbox。现在,我唯一需要做的工作就是再次创建智能播放列表,这与我的整个库评级相比根本不算什么。
今天我遇到了同样的问题,想要在 OSX 10.8 上编译新的 GIMP 2.9.4 beta 并借助自制程序。
首先安装perl
brew install perl
然后通过进入 perl shell 来使用 XML::Parser 模块
perl -MCPAN -e shell
在 shell 内输入以下命令安装 XML::Parser
install XML::Parser
退出外壳
exit
现在,验证它是否已成功安装。如果一切正常,您将不会看到错误。
perl -e "require XML::Parser"
如果 ./configure 仍然失败,缺少 XML::Parser,则 intltools 没有使用您已安装的 perl。查看脚本告诉我它进行了测试 $INTLTOOL_PERL -e "require XML::Parser"
. 。尝试一个 echo $INTLTOOL_PERL
没有给出任何内容,所以神奇的是将其设置为
export $INTLTOOL_PERL=perl
现在再次运行./configure。
上述方法都不适合我。我有正确的环境变量设置,但不知何故它们没有被拾取 cpanm
我用它来安装 perl 模块。还安装了外籍人士。
这是我为克服 OP 报告的相同问题所做的事情。这非常接近于什么 @LadyBuzz 建议。
- 下载
XML::Parser
从cpan.org
- 将 tarball 解压到目录中并进入该目录。
- 打开
Makefile.pl
并编辑第一行以实际拥有两者的绝对路径:EXPATLIBPATH
和EXPATINCPATH
- 保存
Makefile.pl
, ,上一层并使用以下命令创建一个新的 tarballMakefile.pl
您刚刚编辑的。 - 执行
cpanm
在新创建的 tarball 上。
这导致模块安装成功。