我使用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

在我的DebianSquence6.0生产服务器上,使用ImageMagickQ16、rvm和Ruby1.8.7
我可以在IRB中使用以下内容:
require 'rubygems'
=> true
require 'rmagick'
LoadError: no such file to load -- rmagick
require 'RMagick'
=> true

“gem list”以小写字母显示在两个操作系统上。
rmagick (2.13.1)

我想知道这个问题的根源吗?
宝石的资本化(如宝石列表所示)是否与require 'some_gem'

最佳答案

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

touch testcase
touch Testcase
ls

如果您只看到一个测试用例文件,那么您可能在不区分大小写的fs上。或者你可以做一些类似的事情:
diskutil info /

如果你看到的话
File System Personality: Journaled HFS+

而不是
File System Personality: Case-sensitive Journaled HFS+.

那你的案子就不敏感了。如果你麻木不仁,那么这就是为什么你可以逃脱要求'马吉克'或'马吉克'或任何其他资本模式。AS
cameron指出,包含的lib文件是大写的,请参见:https://github.com/rmagick/rmagick/blob/master/lib/RMagick.rb这意味着当您使用区分大小写的fs时,必须
require 'RMagick'

作为
require 'rmagick'

查找不存在的文件。
我已经看到了很多与此相关的问题,特别是如果您的git repo在同一个文件夹中有两个同名且大小写不同的文件(对我来说,这会导致git总是报告未提交的更改)。为了实现它的价值,我使用了磁盘实用程序来创建区分大小写的磁盘映像,并将其装载并用于开发。这样我就可以保留默认的不区分大小写的fs,并避免像这样烦人的问题。

关于ruby - 'require'rmagick'和'require RMagick'之间的区别(Mac与Debian),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8407062/

10-13 04:44