我维护一个旧的 Rails 应用程序,它使用 Ruby 1.8.6。我正在尝试安装并运行新安装的 Linux Mint 18,以便我可以开发该应用程序。我设法安装了与服务器上相同(几乎)版本的 ImageMagick,并且安装 rmagick gem 并不困难。
我需要安装 rmagick v2.2.2,因为这是我们服务器上的。但是,我收到此错误,请参见下文:
$ gem install rmagick -v 2.2.2
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
/home/max/.rvm/rubies/ruby-1.8.6-p420/bin/ruby extconf.rb
checking for Ruby version >= 1.8.2... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.3.0... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for magick/MagickCore.h... yes
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagickCore... no
Can't install RMagick 2.2.2. Can't find libMagick or one of the dependent libraries. Check the mkmf.log file for more detailed information.
Gem files will remain installed in /home/max/.rvm/gems/ruby-1.8.6-p420@elearning-resource/gems/rmagick-2.2.2 for inspection.
Results logged to /home/max/.rvm/gems/ruby-1.8.6-p420@elearning-resource/gems/rmagick-2.2.2/ext/RMagick/gem_make.ou
看起来我可能需要使用 apt-get 安装一些其他依赖项,但我不确定是什么。即使我知道,我想我可能需要安装旧版本才能与我拥有的旧版本 ImageMagick 配合使用?
mkmf.log 文件位于此处: http://pastebin.com/h9dbGr1k
感谢您的任何建议 - 谢谢!
答案1
配置找不到函数InitializeMagick(),因为较新版本的ImageMagick 向该函数传递了一个额外的参数。对于您的 RMagick 版本正在寻找的签名,您可能需要 ImageMagick <= 6.4.1,如上所述这里,它不会作为您的发行版中的包提供。然而,尝试修改 gem 以使用更新版本的 ImageMagick 构建可能是值得的,因为这么旧的库通常有许多已知的漏洞,例如本例CVE-2016–3714或者CVE-2012-1185with 都可以在解析图像时导致远程代码执行...