3

我正在尝试在 Heroku 上运行pdf2htmlEX。起初我想在与 Heroku 具有相同堆栈的 VM 上编译 pdf2htmlEX,然后将二进制文件包含在 git repo 中。那没有用(我一直遇到依赖问题)。

由于没有pdf2htmlEX专门运行的 heroku buildpack,我决定尝试将heroku-buildpack-multiheroku buildpack-aptheroku-buildpack-ruby一起使用(buildpack-apt 在编译和运行时都添加了对基于 apt 的依赖项的支持)。pdf2htmlEX 包不在主 PPA 中(它在 ppa:coolwanglu/pdf2htmlex 中)我不能只将 pdf2htmlEX 添加到(这是您指定 apt 依赖项的地方)。Aptfile

我最终得到了 pdf2htmlEX 的依赖项:

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

考虑到这一点,我使我的 Aptfile 如下:

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

问题是,如果我在一次性测功机中收到 bash 提示并尝试运行 pdf2htmlEX,我会收到以下错误:

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 的更简单方法,请告诉我。

4

2 回答 2

2

连同上述 Aptfile 中的库,请data-dir在转换时提供给 pdf2htmlEX。

转换时的主要问题之一是在 Ubuntu 上安装 pdf2htmlEX,/usr/bin/pdf2htmlEX而在 heroku 上安装在/app/.apt/usr/bin/pdf2htmlEX. 当我们在默认转换时不提供data-dir/usr/bin/pdf2htmlEX时,会查找.

使用v0.16.0-poppler-0.62.0-ubuntu-18.04heroku-18上测试

如果您使用的是 ruby​​,则可以将Kristin gem 与master分支一起使用

于 2020-07-27T12:39:28.170 回答
0

我刚刚开始工作 - 非常感谢这篇让我朝着正确方向前进的帖子。

首先,我最终使用了 ppa 中的这个包,而不是您引用的 debian 包。

看起来问题是您引用的包是针对不同版本的 libstdc++6 编译的,而不是您libstdc++6Aptfile. 为了解决这个问题,我们用对libstdc++6特定的、更新的明确引用替换了该行.deb——我使用 了托管在 kernel.org 上的这个版本

我还替换了 libpoppler57 参考,但您可能不需要。

我最后的工作 Aptfile:

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

希望这可以帮助!

于 2016-01-10T22:50:17.720 回答