ruby macos ubuntu debian rmagick

ruby - Diferencia entre ''require'' rmagick ''y'' require RMagick ''(Mac vs Debian)



macos ubuntu (4)

La causa principal de esto es que el sistema de archivos en Mac OS X no distingue entre mayúsculas y minúsculas por defecto . Puede hacer una prueba rápida para confirmar esto si lo desea en la línea de comando.

touch testcase touch Testcase ls

Si solo ve un solo archivo de caso de prueba, entonces probablemente sea un fs insensible a mayúsculas y minúsculas. Alternativamente, puedes hacer algo como:

diskutil info /

En el resultado si ves

File System Personality: Journaled HFS+

y no

File System Personality: Case-sensitive Journaled HFS+.

entonces tu caso insensible Si eres insensible, entonces eso es lo que te permite salirte con la exigencia de ''RMagick'' o ''rmagick'' o cualquier otro patrón de capitalización. Como Cameron señala el archivo lib que su inclusión está en mayúscula, consulte: https://github.com/rmagick/rmagick/blob/master/lib/RMagick.rb Esto significa que cuando se encuentre en un caso sensible a mayúsculas tendrá que

require ''RMagick''

como

require ''rmagick''

busca un archivo que no existe.

He visto muchos problemas con esto, especialmente si su git repo tiene dos archivos con el mismo nombre y diferentes casos en la misma carpeta (para mí esto resulta en que git siempre informa cambios no confirmados). Por lo que vale, utilicé la utilidad de disco para crear una imagen de disco sensible a mayúsculas y minúsculas que monté y usé para el desarrollo. De esa manera, puedo dejar el Fs insensible a mayúsculas en su lugar y evitar problemas molestos como este.

Estoy usando Mac Pro Lion para el desarrollo con ImageMagick Q16, RVM y ruby ​​1.8.7

Puedo usar lo siguiente en IRB:

Tome nota de los diferentes límites en la palabra ''rmagick''

require ''rubygems'' => true require ''rmagick'' => true require ''RMagick'' LoadError: no such file to load -- RMmagick

En mi servidor de producción Debian Squeeze 6.0 con ImageMagick Q16, RVM y ruby ​​1.8.7

Puedo usar lo siguiente en IRB:

require ''rubygems'' => true require ''rmagick'' LoadError: no such file to load -- rmagick require ''RMagick'' => true

''gema lista'' se muestra en ambos sistemas operativos en minúsculas.

rmagick (2.13.1)

Me gustaría saber la raíz de este problema?

En caso de que la capitalización de las gemas (como se muestra en la lista de gemas) no sea la misma que en el require ''some_gem''


require ''RMagick''

es lo que deberías estar usando. si eso no funciona en OSX, algo no está bien con su instalación. ¿Cómo se ve tu Gemfile?


RMagick

Mi configuración es un sistema de desarrollo Mac que usa RubyMine y que se implementa en un servidor Ubuntu usando capistrano. Seguí obteniendo un error durante la implementación, aunque estaba seguro de que el sistema remoto tenía las bibliotecas de imagemagick correctas.

El mensaje de error durante la cap deploy fue

cannot load such file -- rmagick

Ubuntu y Mac Gemfile

gem ''rmagick''

requiere ''RMagick'' OS X

El problema que he encontrado es que el desarrollo de un rake rake en Mac OS X te permitirá salirte con la suya

require ''rmagick''

O

require ''RMagick''

requiere ''RMagick'' Ubuntu

Donde anteriormente había instalado y probado la biblioteca:

sudo apt-get install libmagickwand-dev gem install rmagick

La rmagick en minúscula no funcionó, ya que funcionaba, lo que te lleva a la conclusión de que tienes un problema con la biblioteca. Sin embargo, el problema es la línea requerida.

require ''RMagick''

Conclusión

Siempre use RMagick para la línea require, porque ese es el nombre oficial de la biblioteca.