2011-01-12 6 views
1

最近、私はUbuntuでRVMを使用するように急落しました。実行ファイルを持つRVMとgemの問題

1つのことを除いてすべてがうまくいっているようです。私は自身のbin /ディレクトリ内にスクリプトが置かれた宝石を開発中です。宝石のすべてはJewelerによって生成されました。

#!/usr/bin/env ruby 
begin 
    require 'mygem' 
rescue LoadError 
    require 'rubygems' 
    require 'mygem' 
end 
app = MyGem::Application.new 
app.run 

ルビーのシステムバージョンに罰金働いていた - :

のbin/mygemファイルには、次のコードが含まれています。

...最近、私のルビーバージョンをもっとうまく管理するためにRVMに移動しましたが、私の宝石は動作していません。

まず、私はこれを行う: - :

私はmygem

ためのコマンドを実行しようとすると...除き、罰金インストール
rvm 1.9.2 gem install mygem 

-

rvm 1.9.2 

その後、私はこれを行うに

mygem 

次の例外があります。 -

[email protected]:~$ 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

'rvm info'をチェックし、PATH、Ruby、Gemの情報がすべて健全性チェックに合格していることを確認してください。 –

答えて

1

rvm 1.9.2 gem install mygem 

は私がRVM内部の宝石の私のインストールを行う方法とは異なります。

試してみてください。

rvm 1.9.2 
gem install mygem 

あなたはまた、実行可能ファイルを削除し、現在のRubyのためにそれを再コンパイルする宝石を教えてくれますgem pristine mygemをやってみたいことがあります。

もう一つの考え:以前はRuby 1.8+を使用していて、Ruby 1.9+に変更しましたか? Ruby 1.9では、requireは、呼び出し元コードに相対的なモジュール、たとえば子ディレクトリにあるモジュールを読み込むときに、 '。'検索パスから削除されました。 require_relativeが追加されました。

+0

私は、コマンドを使用するセマンティクスの間に大きな違いはないと思います。 require_relativeに関するあなたの提案は治療になりましたが、代わりにそのアプリケーションを使用するように私のアプリケーションを再構成することができました。そして今、ubuntuでもっとうまくいくようです。 – djhworld

+0

ああ、クール!、それは聞いて良いです。それが助けてくれてうれしい。 –

0

export RUBYOPT=rubygemsは役に立ちますか?使用

+1

残念なことに違いを生むようには思えません。私は恐れます。 – djhworld