我已升级到rails 5.2并正在实施ActiveStorage。 ActiveStorage使用mutool进行PDF处理。我已经使用自制软件在本地成功安装了mutool。
mutool is a bit confusing.
rails docs claim to require "mutool",
homebrew installs "mupdf-tools",
and heroku wants "mupdf".
按照以下步骤,我已成功在heroku上安装了apt和mupdf:
- add a new Aptfile to the root of my application with only "mupdf" listed
- commit and push the Aptfile
- THEN run heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt
- push again so heroku will finish installing apt and mupdf
mupdf在推送期间成功构建
heroku buildpacks now returns
1. https://github.com/heroku/heroku-buildpack-apt
2. heroku/ruby
如果我刷新页面调用PDF上的变体,则图像无法处理,作业将恢复以下错误:
Errno::ENOENT: No such file or directory - mutool
似乎mutool和mupdf是同义的......所以,我尝试在我的Aptfile中替换mupdf的mutool ...未能从" ...找不到'。
任何人都知道我需要采取什么行动?
PS:这是使用ActiveStorage实现rails 5.2的一部分。
我将mupdf-tools添加到Aptfile中,这似乎修复了"没有这样的文件或目录"错误。我不确定,因为新的错误表面
MiniMagick::Invalid: `identify /tmp/mini_magick20180105-4-pvub9r` failed with error: identify.im6: no decode delegate for this image format `/tmp/mini_magick20180105-4-pvub9r' @ error/constitute.c/ReadImage/544.
MiniMagick::Error: `identify -format %m %w %h %b /tmp/ActiveStorage20180105-4-1f46tem[0]` failed with error: identify.im6: no decode delegate for this image format `/tmp/ActiveStorage20180105-4-1f46tem' @ error/constitute.c/ReadImage/544.
答案 0 :(得分:3)
Heroku recommends Poppler as an alternative to MuPDF出于许可原因(MuPDF拥有商业许可证)。
他们创建了一个涵盖PDF和视频文件的buildpack for Active Storage Previews。
答案 1 :(得分:1)
我知道这有点旧,但如果您仍然遇到此问题,我可以通过将mupdf-tools的版本更新为至少1.8来解决此问题。
要使用Heroku执行此操作,您需要直接链接到最新版本。
添加heroku-buildpack-apt,然后添加自定义Aptfile。请注意,您需要先添加Aptfile才能使buildpack正常工作。
这是我的Aptfile的样子:
:repo:deb http://archive.ubuntu.com/ubuntu artful main universe
imagemagick
ffmpeg
mupdf-tools
要测试您是否拥有合适的版本,可以使用heroku ps:exec
进行测试。运行mutool -v
,您应该使用版本1.11。