

Yosemite 10.10.4，Ruby 2.2.0

bundle install で RMagick が入らないのです。普通に gem install なら入りました。

ビルドがコケてるようなんですが、  
何が問題なのかエラーを見てもわからず、教えていただきたいです。

[code]

    $ bundle install --path vendor/bundle
    Fetching gem metadata from https: //rubygems.org/............
    Fetching version metadata from https: //rubygems.org/...
    Fetching dependency metadata from https: //rubygems.org/..
    Installing rmagick 2.13.4 with native extensions
    
    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
    
        /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
    checking for Ruby version >= 1.8.5... yes
    checking for xcrun... yes
    checking for Magick-config... yes
    checking for ImageMagick version >= 6.4.9... yes
    checking for stdint.h... yes
    checking for sys/types.h... yes
    checking for wand/MagickWand.h... yes
    checking for snprintf() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for AcquireImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for AffinityImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for AffinityImages() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for AutoGammaImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for AutoLevelImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for BlueShiftImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for ColorMatrixImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for ConstituteComponentTerminus() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for DeskewImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for DestroyConstitute() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for EncipherImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for EqualizeImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for EvaluateImages() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for FloodfillPaintImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for FunctionImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for GetAuthenticIndexQueue() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for GetAuthenticPixels() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for GetImageAlphaChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for GetMagickFeatures() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for GetVirtualPixels() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for LevelImageColors() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for LevelColorsImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for LevelizeImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for LiquidRescaleImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for MagickLibAddendum() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for OpaquePaintImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for QueueAuthenticPixels() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for RemapImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for RemapImages() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for RemoveImageArtifact() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for RotationalBlurImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for RotationalBlurImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for SelectiveBlurImageChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for SetImageAlphaChannel() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for SetImageArtifact() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for SetMagickMemoryMethods() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for SparseColorImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for StatisticImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for SyncAuthenticPixels() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for TransformImageColorspace() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for TransparentPaintImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for TransparentPaintImageChroma() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    checking for QueryMagickColorname() new signature... yes
    checking for Image.type in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for DrawInfo.kerning in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for DrawInfo.interline_spacing in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for DrawInfo.interword_spacing in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for DitherMethod in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for MagickFunction in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for ImageLayerMethod in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for long double in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for AlphaChannelType.CopyAlphaChannel... yes
    checking for AlphaChannelType.BackgroundAlphaChannel... yes
    checking for CompositeOperator.BlurCompositeOp... yes
    checking for CompositeOperator.DistortCompositeOp... yes
    checking for CompositeOperator.LinearBurnCompositeOp... yes
    checking for CompositeOperator.LinearDodgeCompositeOp... yes
    checking for CompositeOperator.MathematicsCompositeOp... yes
    checking for CompositeOperator.PegtopLightCompositeOp... yes
    checking for CompositeOperator.PinLightCompositeOp... yes
    checking for CompositeOperator.VividLightCompositeOp... yes
    checking for CompressionType.DXT1Compression... yes
    checking for CompressionType.DXT3Compression... yes
    checking for CompressionType.DXT5Compression... yes
    checking for CompressionType.ZipSCompression... yes
    checking for CompressionType.PizCompression... yes
    checking for CompressionType.Pxr24Compression... yes
    checking for CompressionType.B44Compression... yes
    checking for CompressionType.B44ACompression... yes
    checking for DistortImageMethod.BarrelDistortion... yes
    checking for DistortImageMethod.BarrelInverseDistortion... yes
    checking for DistortImageMethod.BilinearForwardDistortion... yes
    checking for DistortImageMethod.BilinearReverseDistortion... yes
    checking for DistortImageMethod.DePolarDistortion... yes
    checking for DistortImageMethod.PolarDistortion... yes
    checking for DistortImageMethod.PolynomialDistortion... yes
    checking for DistortImageMethod.ShepardsDistortion... yes
    checking for DitherMethod.NoDitherMethod... yes
    checking for FilterTypes.KaiserFilter... yes
    checking for FilterTypes.WelshFilter... yes
    checking for FilterTypes.ParzenFilter... yes
    checking for FilterTypes.LagrangeFilter... yes
    checking for FilterTypes.BohmanFilter... yes
    checking for FilterTypes.BartlettFilter... yes
    checking for FilterTypes.SentinelFilter... yes
    checking for MagickEvaluateOperator.PowEvaluateOperator... yes
    checking for MagickEvaluateOperator.LogEvaluateOperator... yes
    checking for MagickEvaluateOperator.ThresholdEvaluateOperator... yes
    checking for MagickEvaluateOperator.ThresholdBlackEvaluateOperator... yes
    checking for MagickEvaluateOperator.ThresholdWhiteEvaluateOperator... yes
    checking for MagickEvaluateOperator.GaussianNoiseEvaluateOperator... yes
    checking for MagickEvaluateOperator.ImpulseNoiseEvaluateOperator... yes
    checking for MagickEvaluateOperator.LaplacianNoiseEvaluateOperator... yes
    checking for MagickEvaluateOperator.MultiplicativeNoiseEvaluateOperator... yes
    checking for MagickEvaluateOperator.PoissonNoiseEvaluateOperator... yes
    checking for MagickEvaluateOperator.UniformNoiseEvaluateOperator... yes
    checking for MagickEvaluateOperator.CosineEvaluateOperator... yes
    checking for MagickEvaluateOperator.SineEvaluateOperator... yes
    checking for MagickEvaluateOperator.AddModulusEvaluateOperator... yes
    checking for MagickFunction.ArcsinFunction... yes
    checking for MagickFunction.ArctanFunction... yes
    checking for MagickFunction.PolynomialFunction... yes
    checking for MagickFunction.SinusoidFunction... yes
    checking for ImageLayerMethod.FlattenLayer... yes
    checking for ImageLayerMethod.MergeLayer... yes
    checking for ImageLayerMethod.MosaicLayer... yes
    checking for ImageLayerMethod.TrimBoundsLayer... yes
    checking for VirtualPixelMethod.HorizontalTileVirtualPixelMethod... yes
    checking for VirtualPixelMethod.VerticalTileVirtualPixelMethod... yes
    checking for VirtualPixelMethod.HorizontalTileEdgeVirtualPixelMethod... yes
    checking for VirtualPixelMethod.VerticalTileEdgeVirtualPixelMethod... yes
    checking for VirtualPixelMethod.CheckerTileVirtualPixelMethod... yes
    checking for ruby/io.h... yes
    checking for rb_frame_this_func() in ruby.h,ruby/io.h... yes
    creating extconf.h
    creating Makefile
    
    
    ======================================================================
    Thu 02Jul15 16:15:32
    This installation of RMagick 2.13.4 is configured for
    Ruby 2.0.0 (universal.x86_64-darwin14) and ImageMagick 
    ======================================================================
    
    
    
    make "DESTDIR="
    compiling rmagick.c
    compiling rmdraw.c
    rmdraw.c:315:15: warning: comparison of constant 100 with expression of type 'WeightType' is always true [-Wtautological-constant-out-of-range-compare]
            if (w < 100 || w > 900)
                ~ ^ ~~~
    rmdraw.c:315:26: warning: comparison of constant 900 with expression of 
    
    
    （中略）
    
    
    
                         ^
    rmmain.c:1724:28: error: use of undeclared identifier 'MagickSupport'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/intern.h:761:14: note: expanded from macro 'rb_str_new_cstr'
            rb_str_new((str), (long)strlen(str)) :  \
                        ^
    rmmain.c:1724:28: error: use of undeclared identifier 'MagickSupport'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/intern.h:761:33: note: expanded from macro 'rb_str_new_cstr'
            rb_str_new((str), (long)strlen(str)) :  \
                                           ^
    rmmain.c:1724:28: error: use of undeclared identifier 'MagickSupport'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/intern.h:762:18: note: expanded from macro 'rb_str_new_cstr'
            rb_str_new_cstr(str);                   \
                            ^
    rmmain.c:1724:14: error: assigning to 'volatile VALUE' (aka 'volatile unsigned long') from incompatible type 'void'
        features = rb_str_new2(MagickSupport);
                 ^
    5 errors generated.
    make: *** [rmmain.o] Error 1
    
    
    Gem files will remain installed in /path/to/project/vendor/bundle/ruby/2.0.0/gems/rmagick-2.13.4 for inspection.
    Results logged to /path/to/project/vendor/bundle/ruby/2.0.0/gems/rmagick-2.13.4/ext/RMagick/gem_make.out
    An error occurred while installing rmagick (2.13.4), and Bundler cannot continue.
    Make sure that `gem install rmagick -v '2.13.4'` succeeds before bundling.
    
    ```
    
[/code]


CC BY-SA 3.0
2015-07-02T07:27:45.130
11953
2016-10-20T19:01:10.687
2015-07-03T21:45:18.523
85
10371
question
ruby-on-rails ruby rubygems bundler imagemagick
Yosemite，bundle install で RMagick が入らない


gem install でインストールしたrmagick のバージョンとbundle install で要求されているバージョンが異なっているようです。  
まず、下記コマンドでrails プロジェクトが要求しているバージョンのrmagick をインストールしましょう。

gem install rmagick -v '2.13.4'

もし、上記コマンドも失敗するのであればかなり無理矢理な手段ですが下記に紹介する手法でbundle install は成功するはずです。

* * *

まずGemfile.lock ファイル内のrmagick のバージョン指定を変えてみてください。  
指定するバージョンはgem list コマンドで表示される rmagick のバージョンと同じものです。

これによってbundle install 自体は成功します。  
が、rails プロジェクトが要求するバージョンと実際に使用するgem のバージョンとに差異が生じます。  
プロジェクト内でバージョン固有の機能などを使用する場合は不具合が生じるかもしれませんのでその点だけご注意ください。


CC BY-SA 3.0
2015-07-02T13:37:18.353
11968
2015-07-02T13:37:18.353
2373
11953
answer