导入并使用红宝石宝石

时间:2016-11-08 17:47:35

标签: ruby rubygems rvm

我的头衔可能无法准确反映我想要提出的问题,但这是我能想到的最好的。

我要做的是对库进行修改,并在项目中测试这些修改。所以我运行了RVM,一个名为project/的项目文件夹,一个2.3.1的gemset,以及克隆到文件夹project/metasm/中的库git。我有一个文件project/Gemfile,其中包含以下行:

gem "metasm", :path => "metasm"

当我运行bundle install时,我得到以下内容:

Using metasm 1.0.2 from source at `metasm`
Using bundler 1.13.6
Bundle complete! 1 Gemfile dependency, 2 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

很好,所以一切似乎都应该有效。真棒。我下到irb并转到require图书馆/宝石,但它对我来说似乎不太好。

2.3.1 :001 > require "metasm"
LoadError: cannot load such file -- metasm
    from /home/chiggins/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/chiggins/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from (irb):1
    from /home/chiggins/.rvm/rubies/ruby-2.3.1/bin/irb:11:in `<main>'

现在这就是我真正理解的东西。为什么我不能使用metasm来自当前的位置,即使bundle install正常工作呢?

这是我认为这会起作用的最好方式。我理想的做法是能够在我认为合适的情况下对metasm库进行更改,并运行irb或Ruby脚本来测试/验证我的更改。这是一个很好的方式,或者我应该采取另一种方式吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您必须使用bundle exec irb命令输入irb。

正如您所见herebundle exec <command>执行命令,使得Gemfile中指定的所有gem在Ruby程序中都可用。