ОК, я - нубистка из Ruby, но я исправил это немного иначе, чем ответы здесь, так что, надеюсь, это поможет кому-то еще (tl; dr: я использовал RVM, чтобы переключить системную версию Ruby на ту, которую ожидаетRubyGems).
Во-первых, список всех Ruby, упомянутых Eimantas , послужил отличной отправной точкой:
> which -a ruby
/opt/local/bin/ruby
/Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
/Users/Brian/.rvm/bin/ruby
/usr/bin/ruby
/opt/local/bin/ruby
Экземпляр Ruby по умолчанию, используемый системой, выглядит как 1.8.7:
> ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-darwin10]
, а Rubygems использовала версию 1.9.2, управляемую RVM:
> gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
Так что это определенно была проблема.Я сам не использую Ruby (это просто зависимость от сценария системы сборки, который я пытаюсь запустить), поэтому мне было все равно, какая версия была активной для других целей.Поскольку rubygems ожидал, что 1.9.2 уже управляется RVM, я просто использовал RVM, чтобы переключить систему на использование версии 1.9.2 в качестве версии по умолчанию:
> rvm use 1.9.2
Using /Users/Brian/.rvm/gems/ruby-1.9.2-p290
> ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.3.0]
После этого мой "нет такого файла""проблема исчезла, и мой сценарий начал работать.