omni補完できるまで

ごにょごにょしたらomni補完できるようになったので、その記録。
理屈は分かってません。



omni補完がエラるを調べていたら、
gemコマンドが2つ入っていることに気づきました。

# sudo find / -name gem
/Library/Ruby/Gems/1.8/gems/rubygems-update-1.2.0/bin/gem
/opt/local/bin/gem
/opt/local/var/macports/software/rb-rubygems/0.9.4_0/opt/local/bin/gem
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
/usr/bin/gem

/opt/local/bin/gemと/usr/bin/gem 

# which gem
/opt/local/bin/gem
# gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.2.0
- RUBY VERSION: 1.8.6 (2007-09-24 patchlevel 111) [i686-darwin9.2.2]
- INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-9
- GEM PATHS:
- /opt/local/lib/ruby/gems/1.8
- /opt/local/lib/ruby/gems
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/
# which gem
/usr/bin/gem
# gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.2.0
- RUBY VERSION: 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-9
- GEM PATHS:
- /Library/Ruby/Gems/1.8
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/


Leopardなので、rubyrubygemsMacPortsでプリインストール済みです。
が、Rails2.1をインストールするにはrubygemsをアップデートしなきゃいけない(プリインストール時は0.9.4)
なので、

#sudo gem update --system

をしました。(1.2.0にアップデートされた)


このときに2つになったのかなあ・・
まあとりあえず2つありました。


omni補完がエラった(Missing the Rails 2.1.0 gem.)ときの状況は
/usr/bin/gemを叩いてRails2.1を入れたときでした。
Railsが入った場所は/Library/Ruby/Gems/1.8/gems/


この状況からやったこと

  • rb-rubygemsをアンインストールしてみた
#sudo ports uninstall rb-rubygems
  • rb-rubygemsをインストールしなおしてみた
#sudo ports install rb-rubygems
  • gemをアップデートした
#sudo gem update --system
  • ログインシェルのパスを変えた

/usr/bin/gemでなく、/opt/local/bin/gemを叩くように

# echo $PATH
/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/git/bin
  • Rails2.1を入れた
#sudo gem install -v=2.1.0 rails


これでomni補完がうまく動くようになりました。
理屈は分かってません。
ぐぐったら、Macのrubygems周りでおかしくなったーというのがけっこうありました。
解決方法は人それぞれのようです・・