RMagick blocca processi rubino quando richiesto su OS X Snow Leopard
-
25-09-2019 - |
Domanda
Ho un problema abbastanza strano. Ho installato ImageMagick via homebrew.
ho installato RMagick-2.12.2 e 2.11.2 RMagick-senza problemi.
ottengo nessun errore per l'installazione di entrambi.
ImageMagick sembra essere installato e nel mio percorso:
$ convert --version
Version: ImageMagick 6.5.6-5 2010-01-30 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
Tuttavia, non appena RMagick viene caricato o richiesto in un'applicazione Rails, IRB, script Ruby, ecc il processo si blocca rubino competely e può essere solo uccidere via kill -9
.
Non sono sicuro di come eseguire il debug qual è il problema qui poiché non v'è mai stato un messaggio di errore o stacktrace. Qualcuno ha qualche suggerimento?
Soluzione
RMagick e Ruby 1.8.6 non sono più compatibili con Snow Leopard a causa di un bug oscuro in Ruby che non è essere ancora backport.
Per usare RMagick e Ruby on Snow Leopard, assicurarsi che si sta utilizzando di Ruby 1.8.7 o superiore.
Altri suggerimenti
Per ovviare a questo ho disinstallato la gemma RMagick e la versione MacPorts di ImageMagick, e ImageMagick poi reinstallato con il programma di installazione qui: http://github.com/masterkain/ImageMagick-sl . Poi ho reinstallato la gemma RMagick.
Per una qualche ragione, questo non fa scattare il ma accennato nel post precedente e RMagick verrà caricato con successo.
Avete preso in considerazione solo usando MiniMagick, http://rubyforge.org/projects/mini-magick / , piuttosto che utilizzare RMagick? Ho usato RMagick molto ampiamente e posso dire che si sta per abbandonarlo alla fine. Che si tratti di adesso, perché è un dolore per installare o tardi, perché è così intensivo di memoria e crash del passeggero casuale / processi bastardo, ciò che è veramente la differenza.
MiniMagick dà funzionalità simili a RMagick ma è un wrapper per la versione da riga di comando di convert ed è molto più stabile perché non cerca di richiamare l'API ImageMagick e gestire grandi oggetti binari in memoria come RMagick fa.