'require'rmagick'和'require RMagick'之间的区别(Mac vs Debian)

时间:2011-12-06 21:25:37

标签: ruby macos ubuntu debian rmagick

我使用Mac Pro Lion与ImageMagick Q16,RVM和ruby 1.8.7进行开发

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

请注意单词' rmagick'

中的不同上限
require 'rubygems'
=> true 
require 'rmagick'
=> true 
require 'RMagick'
LoadError: no such file to load -- RMmagick

在我的Debian Squeeze 6.0生产服务器上使用ImageMagick Q16,RVM和ruby 1.8.7

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

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

'宝石列表'在两个操作系统上以小写显示。

rmagick (2.13.1)

我想知道这个问题的根源吗?

宝石的大写(如宝石列表中所示)与require 'some_gem'

中的大写不一致

4 个答案:

答案 0 :(得分:4)

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

touch testcase
touch Testcase
ls

如果您只看到一个测试用例文件,那么您可能只对不区分大小写的fs。或者你也可以这样做:

diskutil info /

如果你看到结果

File System Personality: Journaled HFS+ 

而不是

File System Personality: Case-sensitive Journaled HFS+.

那么你的案例不敏感。如果你的麻木不仁,那就是允许你逃避需要'RMagick'或'rmagick'或任何其他大写模式。如 Cameron指出你的包含大写的lib文件:https://github.com/rmagick/rmagick/blob/master/lib/RMagick.rb这意味着当你使用区分大小写的fs时,你将不得不

require 'RMagick'

as

require 'rmagick'

查找不存在的文件。

我已经看到了很多这方面的问题,特别是如果你的git repo在同一个文件夹中有两个同名和不同情况的文件(对我来说这导致git总是报告未提交的更改)。为了它的价值我使用磁盘实用程序来创建我挂载并用于开发的区分大小写的磁盘映像。这样我可以保留默认的不区分大小写的fs并避免像这样的恼人问题。

答案 1 :(得分:1)

require 'RMagick'

是你应该使用的。如果这不适用于OSX,那么安装就不对了。你的Gemfile是什么样的?

答案 2 :(得分:0)

RMagick

我的设置是使用RubyMine的Mac开发系统,并使用capistrano部署到Ubuntu服务器。尽管我确信远程系统上有正确的imagemagick库,但我在部署期间仍然遇到了故障。

cap deploy期间的错误消息

cannot load such file -- rmagick

Ubuntu和Mac Gemfile

gem 'rmagick'

需要'RMagick'OS X

我发现的问题是在Mac OS X上开发rails rake可以让你逃脱

require 'rmagick'

OR

require 'RMagick'

需要'RMagick'Ubuntu

之前我已经安装并测试过该库:

sudo apt-get install libmagickwand-dev
gem install rmagick

小写的rmagick无法正常工作,因为它工作正常而令人困惑,这导致您得出一个库存问题的结论。但问题是需求线。

require 'RMagick'

结论

始终将RMagick用于require行,因为这是库的正式名称。

答案 3 :(得分:0)

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

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

sudo gem install rmagick

取自这篇文章:

http://blog.paulopoiati.com/2013/01/28/installing-rmagick-in-mac-os-x-mountain-lion-with-homebrew/