运行 Heroku 上的 pdf2htmlEX
Running pdf2htmlEX on Heroku
我正尝试在 Heroku 上 运行 pdf2htmlEX。起初我想在与 Heroku 具有相同堆栈的虚拟机上编译 pdf2htmlEX,然后将二进制文件包含在 git 存储库中。那没有用(我一直遇到依赖性问题)。
由于没有专门针对 运行ning pdf2htmlEX
的 heroku 构建包,我决定尝试使用 heroku-buildpack-multi with heroku-buildpack-ruby
and heroku 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)
我在 Whosebug 上找到的关于这个特定错误的几篇文章并不是特别有用。这似乎与 libstdc++6
有关,但我不知道如何解决它。
有什么想法吗?另外,如果您知道在 heroku 上 运行ning pdf2htmlEX 的更简单方法,请告诉我。
我刚开始工作 - 非常感谢 post 让我走上了正确的方向。
首先,我最终使用了 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
希望对您有所帮助!
连同上面提到的 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 branch
一起使用
我正尝试在 Heroku 上 运行 pdf2htmlEX。起初我想在与 Heroku 具有相同堆栈的虚拟机上编译 pdf2htmlEX,然后将二进制文件包含在 git 存储库中。那没有用(我一直遇到依赖性问题)。
由于没有专门针对 运行ning pdf2htmlEX
的 heroku 构建包,我决定尝试使用 heroku-buildpack-multi with heroku-buildpack-ruby
and heroku 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)
我在 Whosebug 上找到的关于这个特定错误的几篇文章并不是特别有用。这似乎与 libstdc++6
有关,但我不知道如何解决它。
有什么想法吗?另外,如果您知道在 heroku 上 运行ning pdf2htmlEX 的更简单方法,请告诉我。
我刚开始工作 - 非常感谢 post 让我走上了正确的方向。
首先,我最终使用了 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
希望对您有所帮助!
连同上面提到的 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 branch
一起使用