XML :: LibXSLT无法在Heroku上安装

时间:2014-10-08 07:36:29

标签: perl heroku libxslt

我无法在XML::LibXSLT上安装Heroku。虽然在Heroku stack cedar和cedar-14上listed as installed Ubuntu packages,但看起来并没有安装所需的库gdbm。类似的问题已经报告in this question,但Heroku上没有,并且不允许安装新的Ubuntu软件包。

要重现错误,请创建一个最小存储库,在cpanfile中需要XML :: LibXSLT:

$ git init
$ echo 'requires "XML::LibXSLT";' > cpanfile
$ echo 'sub { [200,[], ['Hello World']] }' > app.psgi
$ git add cpanfile app.psgi
$ git commit -m "initial commit"

使用heroku-buildpack-perl创建一个新的Heroku应用程序以运行cpanm

$ heroku create --stack cedar --buildpack https://github.com/miyagawa/heroku-buildpack-perl.git
$ git push heroku master

错误日志包含

! Installing XML::LibXSLT failed. See /app/.cpanm/work/1412752363.1663/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'XML::LibXSLT' is not installed
! Bailing out the installation for ..

要获得更详细的错误消息,请尝试手动安装:

$ heroku run cpanm --verbose XML::LibXSLT

失败并出现以下错误

....
LD_RUN_PATH="/usr/lib" cc  -shared -O2 -g -L/usr/local/lib -fstack-protector LibXSLT.o perl-libxml-mm.o  -o blib/arch/auto/XML/LibXSLT/LibXSLT.so   \
   -L/usr/lib -lxslt -lxml2 -lz -lm -lexslt -lgdbm -lgdbm_compat -ldl -lm -lpthread -lc -lcrypt  \

/usr/bin/ld: cannot find -lgdbm
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/XML/LibXSLT/LibXSLT.so] Error 1
FAIL
! Installing XML::LibXSLT failed. See /app/.cpanm/work/1412753360.2/build.log for details. Retry with --force to force install it.

作为noted above,Heroku安装了Ubuntu软件包libgdbm3libxslt1-dev(与heroku run dpkg --get-selection确认),所以我想知道为什么编译仍然失败。

1 个答案:

答案 0 :(得分:2)

尝试安装libgdbm的开发包

apt-get install libgdbm-dev

CPAN通常需要dev-packages来安装模块。