我想在Heroku上运行pdf2htmlEX。起初,我想在一个vm上编译pdf2htmlex,它的堆栈与heroku相同,然后在git repo上包含二进制代码。这不起作用(我一直遇到依赖关系的问题)。
由于没有专门用于运行pdf2htmlEX的heroku构建包,因此我决定尝试将heroku-buildpack-multiheroku-buildpack-rubyheroku buildpack-apt一起使用(buildpack apt在编译和运行时都添加了对基于apt的依赖项的支持)。pdf2htmlex包不在主ppa中(它在ppa:coolwanglu/pdf2htmlex中),我不能将pdf2htmlex添加到Aptfile(这是指定apt依赖项的地方)。
我得到了pdf2htmlex的依赖项:

pdf2htmlex
  Depends: libc6
  Depends: libcairo2
  Depends: libfontforge1
  Depends: libfreetype6
  Depends: libgcc1
  Depends: libpoppler44
  Depends: libstdc++6
  Suggests: ttfautohint

考虑到这一点,我做了如下准备:
libc6
libcairo2
libfontforge1
libfreetype6
libpoppler44
libgcc1
libstdc++6
ttfautohint
http://ftp.us.debian.org/debian/pool/main/p/pdf2htmlex/pdf2htmlex_0.14.6+ds-1+b1_amd64.deb

问题是,如果我在一次性dyno中得到bash提示并尝试运行
pdf2htmlex I收到以下错误:
pdf2htmlEX: /app/.apt/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by pdf2htmlEX)
pdf2htmlEX: /app/.apt/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by pdf2htmlEX)
pdf2htmlEX: /app/.apt/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libpoppler.so.57)

我在stackoverflow上找到的关于这个特定错误的几篇文章没有特别的帮助。这似乎与libstdc++6有关,但我不知道如何解决它。
有什么想法吗?另外,如果你知道在heroku上运行pdf2htmlex的更简单的方法,请告诉我。

最佳答案

我刚得到这个工作-非常感谢你的职位,使我在正确的方向。
首先,我使用了ppa中的this package而不是您引用的debian包。
问题似乎是,您引用的包是根据libstdc++6的不同版本编译的,而不是根据libstdc++6Aptfile行安装的版本编译的。为了解决这个问题,我们将libstdc++6行替换为对特定的、更新的.deb的显式引用。
this version hosted on kernel.org
我还替换了libpoppler57引用,但您可能不需要。
我的最后一个工作文件:

libc6
libfontforge1
libgcc1
libjs-pdf
http://mirrors.kernel.org/ubuntu/pool/main/g/gcc-5/libstdc++6_5.3.1-5ubuntu2_amd64.deb
https://mirrors.kernel.org/ubuntu/pool/main/p/poppler/libpoppler57_0.38.0-0.ubuntu1_amd64.deb
https://launchpad.net/~coolwanglu/+archive/ubuntu/pdf2htmlex/+files/pdf2htmlex_0.12-1~git201411121058r1a6ec-0ubuntu1~trusty1_adm64.deb
ttfautohint

希望这有帮助!

10-04 21:28