ruby - 'require ' rmagick' 和 'require RMagick' 之间的区别(Mac 与 Debian)

标签 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

在我的带有 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/

相关文章:

objective-c - 无法从类 NSWindow 的对象创建 BOOL

php - 如何使用 PHP7 使 mssql_connect 工作?

ubuntu - 当我进行 Jmeter 压力测试时,是什么阻止了我的 IP 地址?

ruby - 将数字的 JSON 序列化强制到特定精度

ruby - 链接到 ruby​​ 中的外部文件?

ruby - 类变量的 Attr_accessor

ruby - 在 ruby​​ 中按批处理对数组进行排序

macos - MacOSX launchd 的 psn 参数。我能用它做什么?

python - 在 OS X 上安装 numpy 时 pip3 找不到 Python.h

node.js - 当我运行 Node 时,什么也没有发生,永远一样