【发布时间】:2012-06-05 16:43:35
【问题描述】:
我在尝试运行 ruby 脚本的服务器上收到此错误。
require: no such file to load -- ssch_mail_lib (LoadError)
但是,在我的工作站计算机上,脚本运行良好。
这里是相关代码。
#!/usr/bin/ruby
$: << './lib'
require 'ssch_mail_lib'
$LOAD_PATH 的输出
/Library/Ruby/Site/1.8
/Library/Ruby/Site/1.8/powerpc-darwin11.0
/Library/Ruby/Site/1.8/universal-darwin11.0
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin11.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin11.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0
.
./lib
我已经检查了三倍的名称和目录。他们匹配。
任何想法我错过了什么?或者为什么它可以在一台机器上正常工作而在另一台机器上却不行?谢谢!
编辑:他们都使用 Ruby 1.8.7。
EDIT2:该脚本仅在通过 TextMate 运行时有效。使用终端时,(LoadError) 不起作用。
【问题讨论】:
-
什么版本的 Mac OSX 和 Ruby?什么拱门?
-
英特尔。 OS X 狮子。服务器是 10.7.3。我的工作站是 10.7.4。两者都使用相同版本的 Ruby,1.8.7。
-
如果两者之间没有其他差异,则可能是次要版本号的差异(非常不可能)或与环境变量和其他事物有关的差异(也不太可能)。恐怕我帮不了你。这听起来很愚蠢,但也许你可以添加一个
.rb扩展? -
感谢您的帮助。查看我最近的编辑。想知道 TextMate 在做什么,而终端不是……
-
需要注意的一点:
.指的是进程的当前工作目录,不一定与包含文件的目录相同。如果在服务器上启动 ruby 的任何东西是从不同的目录执行的,./lib将引用与包含ssch_mail_lib.rb的目录不同的目录(我假设它直接位于主脚本文件下)。
标签: ruby