中国开发网: 论坛: 程序员情感CBD: 贴子 484635
haitao
ruby居然会有这样的问题。。。。。。
下载了它的win32下的zip,解压了,但是运行irb总是报错
16:12:47.42 D:\ruby\bin>irb
D:\ruby\bin\ruby: no such file to load -- ubygems (LoadError)

网上才找到:

一个小问题
我们肯定对新鲜出炉的Ruby有着无比浓厚的兴趣,于是写了一个Ruby版的“Hello,world”:
puts "Hello, world!"

然后满怀欣喜的运行这个程序,期待着Ruby的问候:
./ruby hello.rb

可能结果会很不幸,我们得到了一个出乎我们意料的结果:
./ruby: no such file to load -- ubygems (LoadError)

这个问题来自Ruby的环境变量RUBYOPT,它是用来记录附加命令行参数,也就是说,对于常用的参数,只要把它设置在RUBYOPT中,就不必每次输入了。究竟是怎样的参数,阻挡了我们使用Ruby的脚步呢?echo一下。
echo $RUBYOPT
结果是:-rubygems

Rubygems是一个类似于RPM的包管理器,不过,在这里怎么会成了绊脚石。看一下帮助就知道了,原来-r表示需要在执行脚本之前加载一个特定的库,于是,这个参数就被解释成了需要加载ubygems这个库,没有这个库当然就会加载失败了。最简单的解决办法就是抛弃它,在BASH中,我们可以这么做:
export RUBYOPT=

这是一个很简单的问题,可我解决的过程中却走了好大弯路,居然是在顺着源码追进去很远的情况下才最终发现了问题所在。记得有问题先搜索!类似的问题在Windows上也有,如果你用的Ruby是One-Click的版本。不过,在那个版本中,它通过在Ruby的查找路径上添加了一个ubygems.rb的文件屏蔽了这个问题。

好了,问题解决了,就让新鲜的Ruby和我们问好吧!
./ruby hello.rb
Hello,world!


把RUBYOPT清掉了,但是运行irb还是会报错:readline.dll没找到
但是不影响使用。。。。。。
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录