Ruby on rails rvm与sqlite3冲突

Ruby on rails rvm与sqlite3冲突,ruby-on-rails,rubygems,ruby-on-rails-3,Ruby On Rails,Rubygems,Ruby On Rails 3,$:/Users/dev/.rvm/gems/ruby-1.9.2-head@rails3/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle:[BUG]分段错误 ruby 1.8.7(2009-06-12补丁级别174)[通用-达尔文10.0] Abort trap ruby似乎不是正确的版本(1.8.7),但: 更多信息: $: ~ dev$ ruby -v ruby 1.9.2dev (2010-07-15 revision

$:/Users/dev/.rvm/gems/ruby-1.9.2-head@rails3/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle:[BUG]分段错误 ruby 1.8.7(2009-06-12补丁级别174)[通用-达尔文10.0]

Abort trap
ruby似乎不是正确的版本(1.8.7),但:

更多信息:

$: ~ 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
有什么想法吗


非常感谢:)

我不知道在您的情况下是如何发生的,但在我看来,Rails已经尝试使用您的系统安装的Ruby运行,但正在从1.9.2加载路径加载gems。很奇怪

您可以在shell中看到正确的Ruby版本(RVM在本地路径中具有优先权),但这显然不是Rails的起点

查看您是如何启动Rails的,并且在Ruby版本之间没有路径、链接或别名混乱

我在雪豹上遇到了同样的问题;即使在rvm 1.9下。2@rails3,我可以看到正确的rails版本号

我必须使用以下命令才能使用rails命令:

ruby
whichrails
g scaffold用户名:string bio:text

有解决办法吗

我终于找到了原因。看起来
gem安装rails
没有为rvm中的rails安装正确的二进制文件。而
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安装的其他可执行脚本,但为什么gem不将rails安装到rvm自己的bin路径对我来说是个谜。无论如何,这个解决方法对我来说是个麻烦。

在升级到1.9.2p0后也有同样的问题,但在雪豹上重新启动控制台就成功了。似乎rvm可能会感到困惑。

经过一系列更新(rvm到1.5.2,ruby到1.9.2-p180)后,出现了同样的问题

控制台重启对我不起作用,更新到rails 3.0.6将错误改为mysql2的seg错误,而不是sqlite3,重新安装mysql2最终帮了我的忙

问候
Michael在使用ree-1.8.7-2011.03时,我也遇到了同样的问题。(红宝石企业版)

我卸载了sqlite3 gems,然后运行:

gem install sqlite3

它成功了。请注意,SQLite3RubyGem现在建议立即使用“sqlite3”

我在
zsh
MacVim
中遇到了这个确切的错误,并最终将其追溯到解决方案,即将
.zshrc
中的RVM采购移至
.zshenv
。他立即开始工作。刚刚发布了一篇关于有人像我一样偶然发现这一点的文章。

zsh、rvm和vim存在一个已知的问题

最新的解决方案是在.vimrc中将shell设置为sh

set shell=sh
列出了您可能需要运行的所有解决方案

rvm reload

我也有同样的问题。我使用SystemGems和ruby创建了rails应用程序,然后进入rails应用程序并创建了一个.rvmrc。我相信我的问题就是这样产生的。这从命令行解决了我的问题。然而,我确实必须重新启动textmate,以便从那里获取更改。这正是正在发生的事情。我的服务器上有两个版本的rails:来自苹果的版本和自制团队提供的最新版本。如果在添加和删除.rmvc文件时出现此问题,请重新启动控制台,谢谢!
rvm reload