我正在使用 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
在我的带有 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)
我想知道这个问题的根源是什么?
gems 的大写字母(如 gem 列表中所示)是否应与 require 'some_gem'
中的相同
最佳答案
根本原因是 Mac OS X 上的文件系统默认不区分大小写。如果您愿意,可以在命令行上进行快速测试以确认这一点。
touch testcase
touch Testcase
ls
如果您只看到一个测试用例文件,那么您可能在一个不区分大小写的文件系统上。或者,您可以执行以下操作:
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'
作为
require 'rmagick'
寻找不存在的文件。
我已经看到很多与此相关的问题,特别是如果您的 git 存储库在同一文件夹中有两个名称相同但大小写不同的文件(对我来说,这会导致 git 总是报告未提交的更改)。为了它的值(value),我使用磁盘实用程序来创建我挂载并用于开发的区分大小写的磁盘镜像。这样我就可以保留默认的不区分大小写的 fs 并避免像这样烦人的问题。
关于ruby - 'require ' rmagick' 和 'require RMagick' 之间的区别(Mac 与 Debian),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407062/