我有一个传统的rails 2.3.14应用程序,我试图在heroku上运行。我使用延迟作业来运行后台处理,将pdfs转换为.swf文件。这是我用来处理的命令。我可以让它在本地运行。这是我在应用程序中使用的命令。
system <<-COMMAND
pdf2swf --pages=#{page_numbers} #{@pdf_path} -o #{swf_file_path}
COMMAND
当我尝试在heroku上运行它时,我收到此错误消息
sh: pdf2swf: not found
在谷歌上花费时间并搜索堆栈溢出和heroku文档后,我对下一步该做什么感到很遗憾。有没有办法在heroku上安装swftools?如果有办法将pdfs转换为swfs,我可以使用其他选项。谢谢
Reto的解决方案有效,但swftools需要一些其他依赖项是bug等。我试图通过依赖项并在Aptfile中使用了一些不同的文件。我现在看起来像下面。我会尝试在某个时候清理它。
http://launchpadlibrarian.net/26103422/gsfonts_8.11%2Burwcyr1.0.7~pre44-4_all.deb
xpdf
http://launchpadlibrarian.net/14367756/libart-2.0-2_2.3.20-2_amd64.deb
http://launchpadlibrarian.net/62074298/libc6_2.10.1-0ubuntu19_amd64.deb
http://launchpadlibrarian.net/24108389/libfontconfig1_2.6.0-1ubuntu12_amd64.deb
http://launchpadlibrarian.net/58630613/libfreetype6_2.3.9-5ubuntu0.4_amd64.deb
=http://launchpadlibrarian.net/37680616/libgcc1_4.4.1-4ubuntu9_amd64.deb
http://launchpadlibrarian.net/19368718/libgif4_4.1.6-6_amd64.deb
http://launchpadlibrarian.net/26605143/libjpeg62_6b-14build1_amd64.deb
http://launchpadlibrarian.net/37680642/libstdc%2B%2B6_4.4.1-4ubuntu9_amd64.deb
https://launchpad.net/ubuntu/+source/zlib/1:1.2.3.3.dfsg-13ubuntu3
http://launchpadlibrarian.net/27270374/swftools_0.9.0-0ubuntu1_amd64.deb
http://ftp.de.debian.org/debian/pool/main/x/xpdf/xpdf_3.03-17.debian.tar.xz
答案 0 :(得分:1)
不幸的是,Ubuntu 14.04上的swftools
包(heroku正在运行)不再包含pdf2swf
。所以你必须安装旧版本(0.8.1):
使用heroku-buildpack-multi使用https://github.com/ddollar/heroku-buildpack-apt并安装swftools和依赖项:
$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git
从这里开始,您需要创建一个.buildpacks
文件,其中包含(按顺序)部署时要运行的构建包:
$ cat .buildpacks
https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-ruby
然后你需要创建一个包含这个包的Aptfile
文件:
$ cat Aptfile
libart-2.0-2
libjpeg62
libt1-5
http://launchpadlibrarian.net/11111323/swftools_0.8.1-1ubuntu1_amd64.deb
然后您可以使用pdf2swf
。
$ heroku run pdf2swf --version
Running `./pdf2swf --version` attached to terminal... up, run.5153
pdf2swf - part of swftools 0.8.1