【问题标题】:Using rvm, rubygems and bundler使用 rvm、rubygems 和 bundler
【发布时间】:2012-11-06 18:35:53
【问题描述】:

所以,我过去做过很多 Rails 编程,现在我只想将 Ruby 与 RVM 和 Bundler 以及其他一些 gem 一起使用。但是在我完成所有设置后,我需要我想在这个项目中使用的 gem 并得到以下 LoadError:

.rvm/../custom_require.rb:36:in `require': cannot load such file -- upnp/ssdp (LoadError)

我使用的是 Ruby 1.9.3

我有以下文件:

upnp
- Gemfile
- upnp.rb

比在 Gemfile 中:

# Gemfile

source "http://rubygems.org"

gem "upnp", git: "https://github.com/turboladen/upnp.git"

以及项目主文件:

# upnp.rb
require 'rubygems'
require 'upnp/ssdp'

# Search for all devices (do an M-SEARCH with the ST header set to 'ssdp:all')
all_devices = UPnP::SSDP.search

puts all_devices

现在,在使用 gemset 设置 RVM 并捆绑所有内容之后,当我运行时:

ruby upnp.rb

我收到上面提到的这个错误..

我查看了这个 gem 的 Github 页面,它有一个 lib 文件夹和 upnp/ssdp.rb

所以应该不错吧?

我真的不知道怎么调试这种东西!

有人能解释一下这个问题吗?

谢谢!

【问题讨论】:

    标签: ruby gem rvm bundler


    【解决方案1】:

    将其封装在对bundle exec 的调用中。以下是 Ruby 1.93p194

    $ bundle exec ruby upnp.rb 
    D, [2012-11-06 11:05:06 #48555] DEBUG -- : Sent datagram search:
    D, [2012-11-06 11:05:06 #48555] DEBUG -- : M-SEARCH * HTTP/1.1
    

    我找不到参考,但 rvm/ruby 在查找“已安装 git”的 ruby​​gem 时遇到问题。谷歌搜索可能会出现官方答案。

    【讨论】:

    • 哇,太好了,这似乎有效!我确实知道 bundle exec,但从来没有机会找出我应该在什么时候使用它。我想这是了解更多关于那段代码的好时机。谢谢!
    • 我认为使用最新版本的 RVM (head) 可以做到,因此您不需要使用 bundle exec。
    • 可能是。我只在 RVM 1.16.11。
    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 2011-05-20
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多