2017-10-04 66 views
0

我正在尝试在Heroku上构建一个Perl应用程序,这需要模块Encode :: HanExtra。我不确定它是否重要,但我正在使用this unofficial buildpack,并且需要在cpanfile中指定requires 'Encode::HanExtra';。正在使用的Perl版本是v5.16.3。Encode :: HanExtra无法安装在Heroku上(enc2xs未找到)

每当cpanm尝试配置模块,它用错误

Entering Encode-HanExtra-0.23 
    Checking configure dependencies from META.yml 
    Running Makefile.PL 
    Configuring Encode-HanExtra-0.23 ... enc2xs not found! at Makefile.PL line 46. 
    ! Configure failed for Encode-HanExtra-0.23. See /app/.cpanm/work/1507137797.173/build.log for details. 

Perl中已经包括了编码,因为它是一个核心模块,因此应该有enc2xs。我尝试强制下载最新版本的Encode,看它是否解决了问题,但没有。所以我猜猜这个模块在某种程度上发现了enc2xs存在问题。

从谷歌搜索的错误信息我可以看到,其他编码模块有类似的错误已修补,但我不知道,如果他们实际上是一样的问题,这一个。

我不太熟悉安装CPAN模块的调试问题,所以我很欣赏任何指针。我的计划是查看Makefile.pl,如果模块有一个。 FWIW我可以在Strawberry Perl上安装这个模块就好了。我在这个Heroku版本上只有问题。

+0

“*因此应该有enc2xs *',这是一个自行安装的'perl',还是系统'perl'?很多unix发行版将'perl'的部分从标准安装中删除,并且让您使用系统的软件包管理器来安装它们 – ikegami

+0

这是一个perl系统,我明确地在'cpanfile'中加入了'require'Encode','2.92';'并且看到它已经安装了,但是值得注意的是cpanm试图安装Encode :: HanExtra之前,它试图安装Encode,所以也许它没有帮助。但是,我没有看到cpanfile文档中的任何方式来强制安装的特定顺序 – Stephen

+0

所以,你是否搜索系统的包管理器一个包含'enc2xs'的软件包?如果文件系统中的文件系统位于不在你的PATH目录中,是否在文件系统中搜索?enc2xs? – ikegami

回答

0

我能够通过修改buildpack中的配置脚本来解决我的问题,以在处理cpanfile(cpanm [email protected])之前显式安装Encode。

仍然不确定为什么系统Perl会像这样受到损坏,但很高兴能够正常工作。