我试图在Heroku上运行pdf2htmlEX。起初,我想用与Heroku相同的堆栈在VM上编译pdf2htmlEX,然后在git上包含二进制文件。这不起作用(我一直在处理依赖关系方面的问题)。
由于没有专门用于运行pdf2htmlEX的heroku,所以我决定尝试在heroku-buildpack-ruby和heroku buildpack-apt中使用heroku-buildpack-多个 ( 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问题是,如果在一次性dyno中获得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)我在堆栈溢出上找到的关于这个特定错误的几篇文章没有什么特别的帮助。这似乎与libstdc++6有关,但我不知道如何解决它。
有什么想法吗?另外,如果您知道在heroku上运行pdf2htmlEX的更容易的方法,请告诉我。
发布于 2016-01-10 22:50:17
我刚刚完成了这项工作--非常感谢你让我朝着正确的方向前进。
首先,我使用了来自ppa的这个包裹,而不是您引用的debian包。
看起来问题是,您引用的包是针对不同版本的libstdc++6编译的,而不是libstdc++6行在Aptfile中安装的包。为了修复,我们将libstdc++6行替换为对特定的、最近的.deb的显式引用--我使用了此版本托管在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希望这能有所帮助!
发布于 2020-07-27 12:39:28
与上述类库一起在Aptfile中进行转换时,请将data-dir提供给pdf2htmlEX。
转换时的一个主要问题是在/usr/bin/pdf2htmlEX上安装Ubuntu,而在heroku上则安装在/app/.apt/usr/bin/pdf2htmlEX上。当我们在转换数据时不提供数据-dir时,默认情况下查找/usr/bin/pdf2htmlEX。
用heroku-18和v0.16.0-poppler-0.62.0-ubuntu-18.04进行测试
如果您使用的是ruby,则可以在主分支中使用克里斯汀宝石。
https://stackoverflow.com/questions/34324162
复制相似问题