Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 与x27之间的差异;要求';rmagick';和';需要RMagick';(Mac vs Debian)_Ruby_Macos_Ubuntu_Debian_Rmagick - Fatal编程技术网

Ruby 与x27之间的差异;要求';rmagick';和';需要RMagick';(Mac vs Debian)

Ruby 与x27之间的差异;要求';rmagick';和';需要RMagick';(Mac vs Debian),ruby,macos,ubuntu,debian,rmagick,Ruby,Macos,Ubuntu,Debian,Rmagick,我正在使用Mac pro Lion进行ImageMagick Q16、RVM和ruby 1.8.7的开发 我可以在IRB中使用以下内容: require 'rubygems' => true require 'rmagick' LoadError: no such file to load -- rmagick require 'RMagick' => true 注意“rmagick”一词中的不同大写字母 在带有ImageMagick Q16、RVM和ruby 1.8.7的De

我正在使用Mac pro Lion进行ImageMagick Q16、RVM和ruby 1.8.7的开发

我可以在IRB中使用以下内容:

require 'rubygems'
=> true 
require 'rmagick'
LoadError: no such file to load -- rmagick 
require 'RMagick'
=> true
注意“rmagick”一词中的不同大写字母 在带有ImageMagick Q16、RVM和ruby 1.8.7的Debian Squeeze 6.0生产服务器上

我可以在IRB中使用以下内容:

require 'rubygems'
=> true 
require 'rmagick'
LoadError: no such file to load -- rmagick 
require 'RMagick'
=> true
“gem list”以小写字母显示在两个操作系统上

rmagick (2.13.1)
我想知道这个问题的根源是什么

宝石的资本化(如宝石列表中所示)是否应与
要求的“一些宝石”不同

require 'RMagick'
这是你应该使用的。如果这在OSX上不起作用,则说明您的安装有问题。您的Gemfile看起来像什么?

RMagick 我的设置是一个使用RubyMine的Mac开发系统,并使用capistrano部署到Ubuntu服务器。尽管我确信远程系统上有正确的imagemagick库,但在部署过程中我一直遇到故障

cap部署期间的错误消息为

cannot load such file -- rmagick
Ubuntu和Mac文件 需要“RMagick”OS X 我发现的问题是,在MacOSX上开发rails rake将允许您不受惩罚

require 'rmagick'

需要“RMagick”Ubuntu 在此之前,我安装并测试了库:

sudo apt-get install libmagickwand-dev
gem install rmagick
小写的rmagick不起作用,因为它起作用而令人困惑,这导致您得出结论,您有一个库问题。然而,问题是需求线

require 'RMagick'
结论
始终对require行使用
RMagick
,因为这是库的正式名称。

造成这种情况的根本原因是Mac OS X上的文件系统默认不区分大小写。如果需要,可以在命令行上进行快速测试以确认这一点

touch testcase
touch Testcase
ls
如果您只看到一个testcase文件,那么您的文件可能是不区分大小写的。或者,您可以执行以下操作:

diskutil info /
在结果中,如果您看到

File System Personality: Journaled HFS+ 
而不是

File System Personality: Case-sensitive Journaled HFS+.
然后你的名字不区分大小写。如果您不敏感,那么这就是允许您不需要“RMagick”或“RMagick”或任何其他大写模式的原因。作为 Cameron指出您的include是大写的lib文件,请参见:这意味着当您使用区分大小写的fs时,您必须

require 'RMagick'
作为

查找不存在的文件


我看到了很多问题,尤其是当您的git repo在同一文件夹中有两个同名、不同大小写的文件时(对我来说,这会导致git总是报告未提交的更改)。为了实现其价值,我使用disk utility创建了区分大小写的磁盘映像,并将其装载并用于开发。这样,我就可以保留默认的不区分大小写的fs,避免类似这样的恼人问题。

在Mac OSX上,您必须从源代码安装这些文件:

brew install imagemagick --disable-openmp --build-from-source

sudo gem install rmagick
摘自本帖:

require 'RMagick'
require 'rmagick'
brew install imagemagick --disable-openmp --build-from-source

sudo gem install rmagick