Warum erzeugt dieser RMagick-Aufruf einen Segmentierungsfehler?


69

Ich habe fast eine Stunde lang meinen Kopf gegen die Wand geschlagen, um herauszufinden, was hier falsch läuft, und ich bin sicher (oder hoffe eher), dass es etwas ziemlich Offensichtliches ist, das ich übersehen habe. Ich verwende Ruby 1.9.1, Sinatra 1.0 und RMagick 2.13.1. ImageMagick und RMagick sind korrekt installiert und funktionsfähig - ich habe Bilder von irb erfolgreich bearbeitet und gespeichert.

Der relevante Teil des params-Arrays (Formatierungsänderungen aus Gründen der Lesbarkeit):

{"admin_user_new_image_file"=>
    {
        :filename=>"freddie-on-shetland-pony.png",
        :type=>"image/png", 
        :name=>"admin_user_new_image_file", 
        :tempfile=>#<File:/var/folders/a7/a7pO5jMcGLCww9XBGRvWfE+++TI/-Tmp-/RackMultipart20100514-20700-o2tkqu-0>,
        :head=>"Content-Disposition: form-data; name=\"admin_user_new_image_file\"; filename=\"freddie-on-shetland-pony.png\"\r\nContent-Type: image/png\r\n"
    }
}

Der relevante Code:

post "/admin/user/:account_name/image/new/" do
  if params[:admin_user_new_image_file][:tempfile]
    thumbnail = Magick::Image.read("png:"+params[:admin_user_new_image_file][:tempfile].path).first
  end
end

Der Fehler (Zeile 229 ist die Zeile, die mit "thumbnail =" beginnt:

config.ru:229: [BUG] Segmentation fault
ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10.3.0]

-- control frame ----------
c:0042 p:---- s:0196 b:0196 l:000195 d:000195 CFUNC  :read
c:0041 p:0121 s:0192 b:0192 l:001ab8 d:000191 LAMBDA config.ru:229
c:0040 p:---- s:0189 b:0189 l:000188 d:000188 FINISH
c:0039 p:---- s:0187 b:0187 l:000186 d:000186 CFUNC  :call
c:0038 p:0018 s:0184 b:0184 l:001d78 d:000183 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:865
c:0037 p:---- s:0182 b:0182 l:000181 d:000181 FINISH
c:0036 p:---- s:0180 b:0180 l:000179 d:000179 CFUNC  :instance_eval
c:0035 p:0016 s:0177 b:0175 l:000174 d:000174 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:521
c:0034 p:0024 s:0171 b:0171 l:000148 d:000170 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:500
c:0033 p:---- s:0169 b:0169 l:000168 d:000168 FINISH
c:0032 p:---- s:0167 b:0167 l:000166 d:000166 CFUNC  :catch
c:0031 p:0140 s:0163 b:0163 l:000148 d:000162 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:497
c:0030 p:---- s:0154 b:0154 l:000153 d:000153 FINISH
c:0029 p:---- s:0152 b:0152 l:000151 d:000151 CFUNC  :each
c:0028 p:0073 s:0149 b:0149 l:000148 d:000148 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:476
c:0027 p:0076 s:0141 b:0141 l:000140 d:000140 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:601
c:0026 p:0009 s:0137 b:0137 l:000138 d:000136 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411
c:0025 p:---- s:0135 b:0135 l:000134 d:000134 FINISH
c:0024 p:---- s:0133 b:0133 l:000132 d:000132 CFUNC  :instance_eval
c:0023 p:0012 s:0130 b:0130 l:000121 d:000129 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566
c:0022 p:---- s:0128 b:0128 l:000127 d:000127 FINISH
c:0021 p:---- s:0126 b:0126 l:000125 d:000125 CFUNC  :catch
c:0020 p:0013 s:0122 b:0122 l:000121 d:000121 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566
c:0019 p:0098 s:0115 b:0115 l:000138 d:000138 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411
c:0018 p:0019 s:0108 b:0108 l:000107 d:000107 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:399
c:0017 p:0014 s:0104 b:0104 l:000103 d:000103 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/showexceptions.rb:24
c:0016 p:0150 s:0098 b:0098 l:000097 d:000097 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/methodoverride.rb:24
c:0015 p:0031 s:0092 b:0092 l:000091 d:000091 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/commonlogger.rb:18
c:0014 p:0018 s:0084 b:0084 l:002080 d:000083 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979
c:0013 p:0032 s:0082 b:0082 l:000081 d:000081 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:1005
c:0012 p:0011 s:0078 b:0078 l:002080 d:002080 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979
c:0011 p:0100 s:0074 b:0074 l:000ff0 d:000ff0 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/lint.rb:47
c:0010 p:0022 s:0068 b:0068 l:000067 d:000067 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/lint.rb:35
c:0009 p:0014 s:0064 b:0064 l:000063 d:000063 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/showexceptions.rb:24
c:0008 p:0031 s:0058 b:0058 l:000057 d:000057 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/commonlogger.rb:18
c:0007 p:0014 s:0050 b:0050 l:000049 d:000049 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/content_length.rb:13
c:0006 p:0320 s:0042 b:0042 l:000041 d:000041 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48
c:0005 p:0256 s:0030 b:0030 l:000029 d:000029 METHOD /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111
c:0004 p:0382 s:0020 b:0020 l:000019 d:000019 METHOD /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70
c:0003 p:0123 s:0009 b:0009 l:000bc8 d:000008 BLOCK  /usr/local/lib/ruby/1.9.1/webrick/server.rb:183
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:---- s:0002 b:0002 l:000001 d:000001 TOP   
---------------------------
-- Ruby level backtrace information-----------------------------------------
config.ru:229:in `read'
config.ru:229:in `block (2 levels) in <main>'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:865:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:865:in `block in route'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:521:in `instance_eval'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:521:in `route_eval'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:500:in `block (2 levels) in route!'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:497:in `catch'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:497:in `block in route!'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:476:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:476:in `route!'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:601:in `dispatch!'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `block in call!'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `instance_eval'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `block in invoke'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `catch'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `invoke'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `call!'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:399:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `block in call'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:1005:in `synchronize'
/usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/lint.rb:47:in `_call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/lint.rb:35:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/content_length.rb:13:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48:in `service'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

-- C level backtrace information -------------------------------------------
0x10010cd8d 0   libruby.dylib                       0x000000010010cd8d rb_vm_bugreport + 77
0x10002b184 1   libruby.dylib                       0x000000010002b184 report_bug + 260
0x10002b318 2   libruby.dylib                       0x000000010002b318 rb_bug + 200
0x1000b7124 3   libruby.dylib                       0x00000001000b7124 sigsegv + 132
0x7fff8301c80a 4   libSystem.B.dylib                   0x00007fff8301c80a _sigtramp + 26
0x1032313ac 5   libMagickCore.3.dylib               0x00000001032313ac Splay + 300
0x103119245 6   libMagickCore.3.dylib               0x0000000103119245 AcquirePixelCache + 325
0x1031cb317 7   libMagickCore.3.dylib               0x00000001031cb317 AcquireImage + 375
0x10333035b 8   libMagickCore.3.dylib               0x000000010333035b ReadPNGImage + 155
0x1031418fd 9   libMagickCore.3.dylib               0x00000001031418fd ReadImage + 2221
0x101f1b72b 10  RMagick2.bundle                     0x0000000101f1b72b rd_image + 339
0x101f1b59b 11  RMagick2.bundle                     0x0000000101f1b59b Image_read + 36
0x1000fd0e4 12  libruby.dylib                       0x00000001000fd0e4 vm_call_cfunc + 340
0x1000fe9b0 13  libruby.dylib                       0x00000001000fe9b0 vm_call_method + 896
0x1000ff8fc 14  libruby.dylib                       0x00000001000ff8fc vm_exec_core + 3180
0x100104b93 15  libruby.dylib                       0x0000000100104b93 vm_exec + 1203
0x100106643 16  libruby.dylib                       0x0000000100106643 rb_vm_invoke_proc + 691
0x100106ccd 17  libruby.dylib                       0x0000000100106ccd vm_call0 + 1085
0x1000317c6 18  libruby.dylib                       0x00000001000317c6 rb_method_call + 406
0x1000fd0e4 19  libruby.dylib                       0x00000001000fd0e4 vm_call_cfunc + 340
0x1000fe9b0 20  libruby.dylib                       0x00000001000fe9b0 vm_call_method + 896
0x1000ff8fc 21  libruby.dylib                       0x00000001000ff8fc vm_exec_core + 3180
0x100104b93 22  libruby.dylib                       0x0000000100104b93 vm_exec + 1203
0x100105ce6 23  libruby.dylib                       0x0000000100105ce6 yield_under + 710
0x100106188 24  libruby.dylib                       0x0000000100106188 specific_eval + 72
0x1000fd0e4 25  libruby.dylib                       0x00000001000fd0e4 vm_call_cfunc + 340
0x1000fe9b0 26  libruby.dylib                       0x00000001000fe9b0 vm_call_method + 896
0x1000ff8fc 27  libruby.dylib                       0x00000001000ff8fc vm_exec_core + 3180
0x100104b93 28  libruby.dylib                       0x0000000100104b93 vm_exec + 1203
0x10010b6bf 29  libruby.dylib                       0x000000010010b6bf rb_f_catch + 639
0x1000fd0e4 30  libruby.dylib                       0x00000001000fd0e4 vm_call_cfunc + 340
0x1000fe9b0 31  libruby.dylib                       0x00000001000fe9b0 vm_call_method + 896
0x1000ff8fc 32  libruby.dylib                       0x00000001000ff8fc vm_exec_core + 3180
0x100104b93 33  libruby.dylib                       0x0000000100104b93 vm_exec + 1203
0x10010aac9 34  libruby.dylib                       0x000000010010aac9 rb_yield + 505
0x100007902 35  libruby.dylib                       0x0000000100007902 rb_ary_each + 82
0x1000fd0e4 36  libruby.dylib                       0x00000001000fd0e4 vm_call_cfunc + 340
0x1000fe9b0 37  libruby.dylib                       0x00000001000fe9b0 vm_call_method + 896
0x1000ff8fc 38  libruby.dylib                       0x00000001000ff8fc vm_exec_core + 3180
0x100104b93 39  libruby.dylib                       0x0000000100104b93 vm_exec + 1203
0x100105ce6 40  libruby.dylib                       0x0000000100105ce6 yield_under + 710
0x100106188 41  libruby.dylib                       0x0000000100106188 specific_eval + 72
0x1000fd0e4 42  libruby.dylib                       0x00000001000fd0e4 vm_call_cfunc + 340
0x1000fe9b0 43  libruby.dylib                       0x00000001000fe9b0 vm_call_method + 896
0x1000ff8fc 44  libruby.dylib                       0x00000001000ff8fc vm_exec_core + 3180
0x100104b93 45  libruby.dylib                       0x0000000100104b93 vm_exec + 1203
0x10010b6bf 46  libruby.dylib                       0x000000010010b6bf rb_f_catch + 639
0x1000fd0e4 47  libruby.dylib                       0x00000001000fd0e4 vm_call_cfunc + 340
0x1000fe9b0 48  libruby.dylib                       0x00000001000fe9b0 vm_call_method + 896
0x1000ff8fc 49  libruby.dylib                       0x00000001000ff8fc vm_exec_core + 3180
0x100104b93 50  libruby.dylib                       0x0000000100104b93 vm_exec + 1203
0x100106643 51  libruby.dylib                       0x0000000100106643 rb_vm_invoke_proc + 691
0x100111803 52  libruby.dylib                       0x0000000100111803 thread_start_func_2 + 835
0x100111921 53  libruby.dylib                       0x0000000100111921 thread_start_func_1 + 17
0x7fff82ff58b6 54  libSystem.B.dylib                   0x00007fff82ff58b6 _pthread_start + 331
0x7fff82ff5769 55  libSystem.B.dylib                   0x00007fff82ff5769 thread_start + 13

[NOTE]
You may encounter a bug of Ruby interpreter. Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap

Hat jemand eine Idee was los ist? Vielen Dank!


Ich mag verwirrt sein, aber ich bin etwas überrascht, dass es überhaupt funktioniert. Verursacht das # -Zeichen nicht, dass der Rest der Zeile "tempfile:" zu einem Kommentar wird? Es sieht so aus, als würden Sie dem Tempvalue nichts zuweisen. Ist es möglich, dass Ruby 1.8 und 1.9 die Kombination "# <...>" unterschiedlich verarbeiten?
AaronM

1
Ich kann bestätigen, dass dies auch bei 1.9.2-rc1 und rc2 passiert.
Matthew Savage

1
Dieses erste Code-Snippet in der Frage ist wahrscheinlich nur das Ergebnis von a. logger.debugIn diesem Fall beschreibt die Syntax #<File:...>lediglich, dass der Wert für den :tempfileSchlüssel eine Instanz von ist File. Stellen Sie sich das so vor: Wenn das ein echter Kommentar wäre, wäre der beschriebene Hash ein Syntaxfehler :)
rfunduk

Antworten:


93

Gehen Sie folgendermaßen vor, um Matthew Savages Kommentar zu erweitern:

brew install imagemagick --disable-openmp

und es fängt wieder an zu arbeiten. Die Dateien müssen nicht bearbeitet werden. (Ich bin nicht sicher, ob er das tatsächlich sagt oder ob er sagt , dass er das Flag entfernen soll , aber der obige Homebrew-Befehl funktioniert unter OSX 10.6 für mich.)

Wenn Sie bereits imagemagick installiert haben, dann

brew uninstall imagemagick && brew install imagemagick --disable-openmp

brew upgrade -f wird nicht mehr neu installiert, daher müssen Sie es zuerst deinstallieren.)


1
Brew Install -f Imagemagick --disable-openmp hat bei mir nicht funktioniert. Ich bin auf osx (Darwin Kernel Version 10.6.0). Ich habe versucht, imagemagick zu entfernen und neu zu installieren, aber es hat bei mir nicht funktioniert. Eine Alternative wäre, mini_magick gem anstelle von rmagick zu verwenden, wie in github.com/jnicklas/carrierwave/issues/185
thekindofme

Vielen Dank für diesen Hinweis. Gibt es dafür einen Bug für Homebrew oder Imagemagick?
docwhat

2
Ich ging, um dies zu verbessern ... und bemerkte, dass ich es bereits getan hatte. Dies hat mich anscheinend einmal auf Schneeleoparden gerettet ... und nachdem ich auf Löwe
umgestiegen

2
Ich hatte die gleichen Fehler wie oben und diese Lösung funktionierte für mich mit der Hinzufügung der Neuinstallation von rmagick: sudo gem deinstallieren rmagick sudo gem install rmagick
DiegoSalazar

3
Wenn Sie imagemagick neu installiert haben, stellen Sie sicher, dass Sie rmagick dagegen neu erstellen: gem unberührter rmagick
mindtonic

34

Ich hatte ein sehr ähnliches Problem unter OS X 10.6.7 mit Ruby 1.9.2p180.

Um den Kommentar von Ash Berlin zu erweitern, müssen Sie, wenn Sie den Homebrew-Paketmanager verwenden, das imagemagick-Paket deinstallieren und auch den Cache entfernen, bevor es funktioniert.

Deinstallieren Sie imagemagick:

brew remove imagemagick

Löschen Sie den Cache:

rm -rf `brew --cache imagemagick`

Installieren Sie dann das Paket mit diesem Flag erneut:

brew install -f imagemagick --disable-openmp

1
Genau das gleiche Problem, aber unter Mac OS 10.7, befolgte diese Schritte und es löste das Problem. Ich habe auch den Rmagick Gem entfernt und für ein gutes Maß wieder aufgebaut.
Andrew

Dies bedeutet, als Standardantwort angegeben zu werden.
Jackyalcine

30

Für Benutzer von MacPorts, ImageMagick 6.6.5 und Ruby 1.9.2.

  1. port uninstall ImageMagick
  2. port edit ImageMagick
  3. Hinzufügen --disable-openmpzu configure.args(in der Nähe von Zeile 100)
  4. port install ImageMagick
  5. Entfernen Sie rmagick und installieren Sie es erneut

Arbeitete für mich :)


Ich verstehe Schritt 3 in dieser Antwort nicht. Nachdem ich ImageMagick im Sudo-Port bearbeitet hatte, gab es mir nur einige grundlegende Informationen zu ImageMagick, wie Lizenz, Version usw. Können Sie etwas näher darauf eingehen? Vielen Dank.
Leahcim

Hey @Michael, ich habe keine MacPorts mehr auf meinem System (bin seitdem zu Homebrew gewechselt), daher kann ich Ihnen nicht Schritt für Schritt helfen. Wenn Sie die Portdatei bearbeiten, sollten Sie die erwähnte Variable in der Nähe von Zeile 100 finden, in die Sie --disable-openmp einfügen können. Kann jemand Michael mit einem detaillierteren Schritt 3 helfen?
Captainpete

Wow, diese Antwort war im Jahr 2010. Trotzdem könnte sie jemandem helfen. Hat jemand ein Update zur Situation?
Captainpete

1
Vielleicht gibt es etwas Verwirrung? "port edit ImageMagick" öffnet einen Editor (ich bekomme vi) in der Portdatei. Die ersten Zeilen der Datei enthalten tatsächlich "einige grundlegende Informationen zu ImageMagic" oder vielmehr zur Portdatei. Meins sagt "# $ Id: Portfile 90819 2012-03-15 03: 06: 13Z" und so weiter. Wenn Sie jedoch zu Zeile 100 gehen, sehen Sie eine Reihe von Befehlszeilenschaltern, in denen Sie --disable-openmp hinzufügen können.
Jackr

5

Ich hatte ein ähnliches Problem bei der Verwendung von Rails 3 mit Carrierwave auf OS X 10.6 und Ruby 1.9.2. Außerdem stürzte ich bei einem Aufruf zum Lesen jedes Mal ab, wenn die Größe eines Bildes geändert werden musste. tun:

brew uninstall imagemagick
brew install imagemagick --disable-openmp

löste das Problem für mich.


3

Der Absturz kann auf den Zugriff auf ImageMagick in einem Thread unter OSX MacPorts zurückzuführen sein. Siehe Beitrag .


1
Ich hatte das gleiche Problem mit 1.9.1, 1.9.2-rc1 und 1.9.2-rc2. Ich verwende Homebrew, um das Paket zu installieren. Ich habe also nur die Brühdatei bearbeitet und die Bedingung für das Hinzufügen von --disable-openmp(Zeile 58) entfernt auf meinem System), dann installiert und behoben!
Matthew Savage

2

Keine Antwort, nur meine Erfahrungen:

Ich bin auch in einem meiner eigenen Projekte auf dieses Problem gestoßen. Ich habe dieses Problem auf OS X (Schneeleopard) mit Ruby-1.9.2-p0 und Ruby-1.9.2-p136.

Besonders verwirrend für mich war, dass ich mit rmagick über die Rails-Konsole ein Bild einlesen kann. Wenn ich jedoch genau die gleiche Linie aus meiner Rails-App treffe, wird sie genauso wie oben beschrieben in die Luft gesprengt.

Der Wiederaufbau von Imagemagick über Homebrew wie oben beschrieben war mir nicht genug. Ich musste auch das rmagick-Juwel löschen und es per Bundle neu erstellen.


2

Wenn Sie imagemagick bereits mit Brew installiert haben, verwenden Sie Folgendes:

brew upgrade -f imagemagick --disable-openmp

1

UPDATE: Dies ist an sich keine echte Antwort (ich sehe immer noch das gleiche Problem in MRI 1.9.1), aber ich habe RVM verwendet, um meine MRI 1.8.7-Installation und Edelsteine ​​auf den neuesten Stand zu bringen, und habe versucht, sie auszuführen. und alles funktioniert perfekt. Ich gehe davon aus, dass das Problem darin besteht, dass RMagick noch nicht ganz mit 1.9.1 kompatibel ist, obwohl in der Dokumentation die Unterstützung von Ruby 1.9 ausdrücklich erwähnt wird.


1

Das gleiche Problem trat nach dem Upgrade von ImageMagick auf einer Linux-Box auf. Hier gibt es noch einige Hinweise. Ich vermute , dass einige Mismatch von ImageMagick Bibliotheken und verknüpft Rubin Edelsteine (die mit allen bisherigen Kommentare einverstanden ist. Sehen Sie sich diese ähnlichen Thread bei RubyForge. Http://rubyforge.org/forum/forum.php?thread_id=48036&forum_id=33

Meine Lösung bestand darin, RMagick zugunsten von MojoMagick zu sichern - einer sehr schlanken Ruby-API, die keine Verknüpfung zu ImageMagick-Bibliotheken herstellt, sondern einfach die Konsolen-Binärdateien verwendet.

Es ist hier verfügbar: www.misuse.org/science/2008/01/30/mojomagick-ruby-image-library-for-imagemagick/

Ich habe ein Juwel erstellt und die Größe geändert, um sie mit der Crop-Funktionalität zu füllen, die auf github https://github.com/bunnymatic/mojo_magick verfügbar ist


0

Ich habe die MacPorts-Lösung von CaptainPete ausprobiert. Es baute 6.6.6-0 und hatte immer noch das gleiche Problem. Der Wechsel zum Brauen, um den Build zu machen, hat den Trick getan. Beachten Sie, dass Brew 6.6.4-5 gebaut hat. Es ist möglich, dass es in 6.6.6 mehrere Fehler oder einen neuen Fehler gibt, der ähnliche Probleme verursacht.


0

Keine dieser Antworten hat es in meinem Fall behoben.

Nachdem ich weiter .resamplenachgeforscht hatte , stellte ich fest, dass ich ein 0,02dpi-Bild aufrief (ich ziehe die Bilder von einer Drittanbieter-API, sodass ich keine Ahnung hatte). Dies führte sogar zu einer Warnmeldung "Festplatte fast voll", nachdem der Segmentierungsfehler aufgetreten war.


0

Ich habe den gleichen Fehler (nach vielen Versuchen) gelöst, indem ich die Zeile 'gem "pg"' in der gemfile unter den Nebeledelstein verschoben habe. Dies hatte meiner Meinung nach etwas mit dem Laden von Abhängigkeiten zu tun.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.