저는 Ruby 1.8.6을 사용하는 이전 Rails 애플리케이션을 유지 관리하고 있습니다. 저는 애플리케이션을 개발할 수 있도록 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
최신 버전의 ImageMagick이 추가 매개변수를 함수에 전달하기 때문에 구성에서 InitializeMagick() 함수를 찾을 수 없습니다. RMagick 버전에서 찾고 있는 서명의 경우 위에서 언급한 대로 ImageMagick <= 6.4.1이 필요할 수 있습니다.여기, 배포판에서 패키지로 사용할 수 없습니다. 그러나 최신 버전의 ImageMagick을 사용하여 빌드하기 위해 gem을 수정하는 것은 가치가 있을 수 있습니다. 오래된 라이브러리에는 종종 다음과 같이 알려진 취약점이 많이 있기 때문입니다.CVE-2016-3714또는CVE-2012-1185이미지를 구문 분석할 때 둘 다 원격 코드 실행으로 이어질 수 있습니다.