После обновления Ruby1.9.2 с p180 до p290 путь динамической библиотеки libruby не обновляется - PullRequest
3 голосов
/ 28 сентября 2011

Я использовал 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

Спасибо!

1 Ответ

0 голосов
/ 04 февраля 2012

проблема была в собственном расширении gems - их не нужно было перестраивать во время rvm upgrade 1.9.2-p180 1.9.2-p290 - в следующий раз, пожалуйста, внимательно посмотрите на вывод ... он должен дать вашу информацию, что не так.

относительно этого конкретногоВ случае использования будет достаточно переустановить данный драгоценный камень:

gem install serialport -v 1.0.4

... не уверен, стоит ли его сначала удалять

...