我最近在Ubuntu上使用RVM。
似乎一切都在游动......除了一件事。我正在开发一个我的宝石,它有一个放在自己的bin /目录中的脚本,所有gemspec和东西都是由Jeweler生成的。
bin / mygem文件包含以下代码: -
#!/usr/bin/env ruby
begin
require 'mygem'
rescue LoadError
require 'rubygems'
require 'mygem'
end
app = MyGem::Application.new
app.run
在Ruby的系统版本上运行良好。
现在......最近我已经转移到RVM来更好地管理我的ruby版本,除了现在我的gem看起来没有用。
首先我这样做: -
rvm 1.9.2
然后我这样做: -
rvm 1.9.2 gem install mygem
哪个安装正常,但...当我尝试运行mygem的命令时
mygem
我得到以下异常: -
daniel@daniel-VirtualBox:~$ mygem
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- mygem (LoadError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from /home/daniel/.rvm/gems/ruby-1.9.2-p136/gems/mygem-0.1.4/bin/mygem:2:in `<top (required)>'
from /home/daniel/.rvm/gems/ruby-1.9.2-p136/bin/mygem:19:in `load'
from /home/daniel/.rvm/gems/ruby-1.9.2-p136/bin/mygem:19:in `<main>'mygem
注意:我在MAC OSX上有类似的RVM设置,我的宝石在那里工作正常,所以我认为这可能与Ubuntu有关吗?
答案 0 :(得分:1)
使用:
rvm 1.9.2 gem install mygem
与我在RVM中安装gems的方式不同。
尝试:
rvm 1.9.2
gem install mygem
您可能还想尝试gem pristine mygem
,它会告诉Gems删除可执行文件并为当前的Ruby重新编译它。
另一个想法:你以前使用的是Ruby 1.8+,刚刚改为Ruby 1.9+吗?在Ruby 1.9中,require
在加载与调用代码相关的模块时(例如,在子目录中)的行为不同,因为'。'已从搜索路径中删除。我添加了require_relative
来为我们提供这种能力。
答案 1 :(得分:0)
做export RUBYOPT=rubygems
会有帮助吗?