Rvm conflit с sqlite3

$:/Users/dev/.rvm/gems/[email protected]/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle: [BUG] Ошибка сегментации   ruby 1.8.7 (2009-06-12 patchlevel 174) [универсальный-darwin10.0]

Abort trap

Кажется, что ruby ​​- это не правильная версия (1.8.7), но:

$: ruby - v
$: ruby 1.9.2dev (2010-07-15 revision 28653) [x86_64-darwin10.4.0]



$: gem list

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.0.beta4, 3.0.0.beta3)
actionpack (3.0.0.beta4, 3.0.0.beta3)
activemodel (3.0.0.beta4, 3.0.0.beta3)
activerecord (3.0.0.beta4, 3.0.0.beta3)
activeresource (3.0.0.beta4, 3.0.0.beta3)
activesupport (3.0.0.beta4, 3.0.0.beta3)
arel (0.4.0, 0.3.3)
builder (2.1.2)
bundler (0.9.26)
erubis (2.6.6)
i18n (0.4.1, 0.3.7)
mail (2.2.5)
memcache-client (1.8.5)
mime-types (1.16)
polyglot (0.3.1)
rack (1.1.0)
rack-mount (0.6.9)
rack-test (0.5.4)
rails (3.0.0.beta4, 3.0.0.beta3)
railties (3.0.0.beta4, 3.0.0.beta3)
rake (0.8.7)
rdoc (2.5.9)
sqlite3-ruby (1.3.1)
text-format (1.0.0)
text-hyphen (1.0.0)
thor (0.13.8)
treetop (1.4.8)
tzinfo (0.3.22)
will_paginate (3.0.pre)

Дополнительная информация:

$: ~ dev$ ruby -v
ruby 1.9.2dev (2010-07-15 revision 28653) [x86_64-darwin10.4.0]
$ :~ dev$ rails -v



/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:827:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem'
from /usr/bin/rails:18

Любые идеи?

Большое спасибо:)

Ответы

Ответ 1

Я не знаю, как это произошло в вашем случае, но мне кажется, что Rails попытался запустить с установленной системой Ruby, но загружает драгоценные камни из пути загрузки 1.9.2. Очень странно.

Вы видите правильную версию Ruby в своей оболочке (RVM имеет приоритет в локальном пути), но это не похоже на то, с чего начинается Rails.

Проверьте, как вы запускаете Rails, и что у вас нет путей или ссылок или псевдонимов, запутанных между версиями Ruby

Ответ 2

Была такая же проблема после перехода на 1.9.2p0, но перезагрузка консоли на Snow Leopard сделала трюк. Кажется, rvm, возможно, запутался.

Ответ 3

Такая же проблема для меня на Snow Leopard; хотя при rvm [email protected] я могу видеть правильный номер версии рельсов.

Мне нужно использовать следующую команду для использования команды rails:

ruby which rails g scaffold User name:string bio:text

Любое решение?

Наконец-то я нашел причину. Похоже, gem install rails не удалось установить правильный бинарный файл для рельсов в rvm. И rails - это все еще ссылки /usr/bin/rails, которые имеют строку #! для строки в Ruby.

Вы можете видеть это с помощью:

head -1 `which rails`

который возвращает:

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

Измените это на:

#!/usr/bin/env ruby

устранит проблему. Я не знаю, влияет ли эта проблема на другие исполняемые скрипты gem installs, но почему gem не устанавливает рельсы в rvm собственный путь к bin - это для меня загадка. Во всяком случае, это обходное решение делает для меня грязным.

Ответ 4

У меня была такая же проблема при использовании ree-1.8.7-2011.03. (Ruby enterprise Edition)

Я удалил камни sqlite3, после чего я побежал:

gem install sqlite3

и это сработало. Обратите внимание, что теперь sqlite3-ruby gem рекомендует использовать 'sqlite3'.

Ответ 5

Возможно, вам потребуется запустить

rvm reload

Ответ 6

Такая же проблема после кучи обновлений (от rvm до 1.5.2 и ruby ​​до 1.9.2-p180)

Консольный перезапуск не работал у меня, обновление до rails 3.0.6 изменило ошибку на seg-ошибку mysql2 вместо sqlite3, повторная установка mysql2 сделала трюк для меня наконец.

Отношения Майкл

Ответ 7

Я столкнулся с этой точной ошибкой в ​​ zsh и MacVim и в итоге отследил ее обратно в эту проблему с RVM. Решение было переместите источник RVM, который у меня был в .zshrc, до .zshenv. Работал немедленно. Просто публикуя случай, кто-то спотыкается об этом так, как я.

Ответ 8

Известна проблема с zsh, rvm и vim.

Последнее решение - установить оболочку в sh.vimrc

set shell=sh

В этом блоге перечислены все перечисленные решения