即使安装了 gem,Ruby 也找不到所需的库
题
我花了几天时间尝试安装 ruby 1.9.2 并让它与 gems 一起工作:-/我最终放弃了我的 Mac OSX 10.6 机器,下面是我的 Ubuntu 机器上的当前状态。任何建议将不胜感激!
# ruby test.rb
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- mongo (LoadError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from test.rb:1:in `<main>'
# cat test.rb
require 'mongo'
db = Mongo::Connection.new.db("mydb")
# gem which mongo
/usr/local/rvm/gems/ruby-1.9.2-p0/gems/mongo-1.1.2/lib/mongo.rb
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
根据这个页面: http://docs.rubygems.org/read/chapter/19我对我使用的 ruby 进行了符号链接以匹配正在使用的 gem:
# which ruby
/usr/local/rvm/bin/ruby
# ls -l `which ruby`
lrwxrwxrwx 1 root root 44 2010-11-17 13:25 /usr/local/rvm/bin/ruby -> /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# which gem
/usr/local/rvm/bin/gem
# gem -v
1.3.7
# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
解决方案
为什么“rvm”显示在您的 /usr/local/rvm/
小路?您是否以系统管理员身份使用进行了系统范围的安装 在系统范围内管理 Ruby 对于多个用户?
你添加了吗 [[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm'
给你的 ~/.bashrc
, ~/.bash_profile
或者 ~/.profile
(无论您配置了哪一个)?
对于正常的日常使用,我推荐 RVM 的默认设置:RVM安装, RVM宝石管理.
注意自我:购买 RVM 股票。太酷了。
其他提示
尝试把下面的行的开头
require "rubygems"
它的Ruby 1.8.7,其中预先默认安装在OS X下工作吗?
如果如此,1.9.1和1.9.2之间的一个区别是,"."
不是$:
的路径的一部分的任何其他。
我建议你做rvm implode
并删除当前的设置。然后使用 railsready 脚本设置RVM和Ruby妥善为您在Ubuntu。要明白,直到你知道你在做什么,你应该运行该脚本的用户是很重要的。希望有所帮助。
在Linux和OS X,我一直把需要在一开始“RubyGems的”。但是它一直工作得很好,而不该行窗口。
不隶属于 StackOverflow