$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

emacsとrbenvとgemにハマってる

 rubyxmpfilterとか使ってemacs上でrubyコードを試すの簡単にしたいんだけどうまく行っていない。

状況

emacsxmpを使うとこんなエラーが出てバッファ内容が全部消えて厳しい。

/Users/shibayu36/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'rcodetools' (>= 0) among 8 total gem(s) (Gem::LoadError)

/Users/shibayu36/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'rcodetools' (>= 0) among 8 total gem(s) (Gem::LoadError)
	from /Users/shibayu36/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/dependency.rb:309:in `to_spec'
	from /Users/shibayu36/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem'
	from /Users/shibayu36/.rbenv/versions/2.1.0/bin/xmpfilter:22:in `<main>'
	from /Users/shibayu36/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/dependency.rb:309:in `to_spec'
	from /Users/shibayu36/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem'
	from /Users/shibayu36/.rbenv/versions/2.1.0/bin/xmpfilter:22:in `<main>'


emacsの$PATHやexec-pathはちゃんと設定されている模様

  • emacs上でM-! which rubyすると/Users/shibayu36/.rbenv/shims/ruby という風に出てくる
  • M-! ruby --versionしたらちゃんと2.1.0p0って出てくる
  • which gemも正しいように見える

 ただgem listしてみると、なぜかsystem rubyに入っているgemが出てきているように見える。

 terminalでgem env pathすると

/Users/shibayu36/.gem/ruby/2.1.0:/Users/shibayu36/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0

と出るのに、emacsでM-! gem env pathしても何も出ない。

 この辺のことからrbenvのrubyにはPATH通ってるけど、gemのlibが入っているところにはなんかうまく設定できてないみたい。どうしたら良いかわからない。