【问题标题】:Running pdf2htmlEX on Heroku在 Heroku 上运行 pdf2htmlEX
【发布时间】:2016-03-23 07:20:34
【问题描述】:

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

由于没有专门用于运行pdf2htmlEX 的heroku buildpack,我决定尝试将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

考虑到这一点,我使我的 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 的更简单方法,请告诉我。

【问题讨论】:

  • 切换到AWS并停止使用heroku(我也是这个位置)

标签: ruby-on-rails ruby heroku apt-get pdf2htmlex


【解决方案1】:

我刚刚完成了这项工作 - 非常感谢这篇文章让我朝着正确的方向前进。

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

看起来问题是您引用的包是针对不同版本的 libstdc++6 编译的,而不是您的Aptfile 中的libstdc++6 行安装的包。为了解决这个问题,我们将libstdc++6 行替换为对特定的、更新的.deb 的显式引用——我用过 this version hosted on 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

希望这会有所帮助!

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-03-20
      • 2018-01-28
      • 2013-08-27
      • 2012-04-06
      • 1970-01-01
      • 2012-06-05
      • 2011-09-17
      • 2022-01-26
      • 2017-12-14
      相关资源
      最近更新 更多