Я использовал RVM для обновления Ruby 1.9.2 с уровня патча p180 до p290:
rvm upgrade 1.9.2-p180 1.9.2-p290
Затем я использовал эти команды для обновления моего Rails-гема и других гемов
gem install rails 3.0.5
gem update
Кажется, все в порядке; rvm info
показывает, что все двоичные файлы Ruby и гемы были перемещены по правильному пути p290 (~ / .rvm / * / ruby-1.9.2-p290 /*).
Однако, когда я захожу в каталог приложений Rails и запускаю команду rails console
, я получаю сообщение об ошибке, в котором говорится, что гем (activesupport-3.0.5) не может загрузить файл libruby.1.9.1.dylib
.
10: 30 AM ~ / Development / rails_projects / my_app_0515 $ консоль rails
/ Users / whk / .rvm / gems / ruby-1.9.2-p290 / gems / activesupport-3.0.5 / lib / active_support / dependencies.rb: 239: в `require ': dlopen (/ Users / whk /.rvm/gems/ruby-1.9.2-p290/gems/serialport-1.0.4/lib/serialport.bundle, 9): Библиотека не загружена: /Users/whk/.rvm/rubies/ruby- 1.9.2-p180 / lib / libruby.1.9.1.dylib (LoadError)
Ссылка на: /Users/whk/.rvm/gems/ruby-1.9.2-p290/gems/serialport-1.0.4/lib/serialport.bundle
Причина: изображение не найдено - /Users/whk/.rvm/gems/ruby-1.9.2-p290/gems/serialport-1.0.4/lib/serialport.bundle
, , .
Rails не может найти файл dylib в ~/.rvm/rubies/ruby-1.9.2-p180/lib
, поскольку путь p180
больше не существует, но файл находится в ~/.rvm/rubies/ruby-1.9.2-p290/lib
.
Из отдельного сообщения StackOverflow я нашел обходной путь, добавив эту строку в .bashrc
export DYLD_LIBRARY_PATH="/Users/whk/.rvm/rubies/ruby-1.9.2-p290/lib:$DYLD_LIBRARY_PATH"
Однако я хочу понять, почему обновление rvm ruby не заботится об изменении пути lib? Кто-нибудь знает более чистое решение - то, которое удаляет путь p180 от того, где это настроено?
Вот мое окружение:
- Mac OS X 10.6.6 (Snow Leopard)
- рвм 1.8.4
- ruby 1.9.2p290
- Рельсы 3.0.5
Спасибо!