【问题标题】:Error trying to run rails server尝试运行 rails 服务器时出错
【发布时间】:2010-12-31 19:51:56
【问题描述】:

我正在尝试让一个基本的 Rails 应用程序在我的 Mac OS X 10.6.5 上运行。我创建了一个名为 demo(rails new demo)的新应用程序,然后进入 demo 目录并尝试使用 rails server 启动应用程序。 这是我收到的错误消息: "/Users/dpetrovi/.gem/ruby/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/sqlite3_native.bundle: [BUG] 分段错误 ruby 1.8.7 (2010-12-23 补丁级别 330) [i686-darwin10]

中止陷阱"

我检查了演示文件夹中的捆绑安装:

Using rake (0.8.7) 
Using abstract (1.0.0) 
Using activesupport (3.0.3) 
Using builder (2.1.2) 
Using i18n (0.5.0) 
Using activemodel (3.0.3) 
Using erubis (2.6.6) 
Using rack (1.2.1) 
Using rack-mount (0.6.13) 
Using rack-test (0.5.6) 
Using tzinfo (0.3.23) 
Using actionpack (3.0.3) 
Using mime-types (1.16) 
Using polyglot (0.3.1) 
Using treetop (1.4.9) 
Using mail (2.2.13) 
Using actionmailer (3.0.3) 
Using arel (2.0.6) 
Using activerecord (3.0.3) 
Using activeresource (3.0.3) 
Using bundler (1.0.7) 
Using thor (0.14.6) 
Using railties (3.0.3) 
Using rails (3.0.3) 
Using sqlite3-ruby (1.3.2) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

Ruby、RubyGems 和 sqlite3 是使用 MacPorts 安装的。然后我用 gem 尝试安装 sqlite3-ruby 接口。 (sudo gem install sqlite3-ruby)。这是我第一次注意到可能出现问题的地方:

Successfully installed sqlite3-ruby-1.3.2
1 gem installed
Installing ri documentation for sqlite3-ruby-1.3.2...

No definition for libversion

Enclosing class/module 'mSqlite3' for class Statement not known
Installing RDoc documentation for sqlite3-ruby-1.3.2...

No definition for libversion

Enclosing class/module 'mSqlite3' for class Statement not known

几个月前我的系统上运行良好的rails,所以我想也许我有一些重复,它试图使用错误的。我跑了:for cmd in ruby irb gem rake; do which $cmd; done 并得到:

/opt/local/bin/ruby
/opt/local/bin/irb
/opt/local/bin/gem
/opt/local/bin/rake

检查 sqlite3 的位置:“/opt/local/bin/sqlite3”,所以它们似乎都在正确的位置。显然 /opt/local/bin 在我的系统路径中。

如果我检查 gems 服务器,它表明我已经安装了 sqlite3-ruby 1.3.2 gem。不确定可能是什么问题?

我正在使用 ruby​​ 1.8.7(2010-12-23 补丁级别 330)[i686-darwin10]。 Macports 声称这是最新的(虽然我见过 1.9.1)

还有一件事——在 irb 中,我试图检查我的 sqlite3-ruby 绑定到哪个版本的 sqlite3,但我只能做到这一点:

:irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'sqlite3'
/Users/dpetrovi/.gem/ruby/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10]

Abort trap

有什么建议吗?我希望我忽略了一些明显的东西。谢谢

【问题讨论】:

  • 请在写帖子时遵循问题格式指南。使用四个空格缩进代码块,对于内联代码示例,使用 `backticks`。

标签: ruby-on-rails


【解决方案1】:

您最近升级到雪豹了吗?如果是这样,您需要重新安装 MacPorts 以及随它一起安装的所有端口。

我建议使用 RVM 而不是 MacPorts 安装的 ruby​​。

【讨论】:

  • 这是全新安装的 MacPorts。然而,当我尝试升级到最新的 Ruby 时,Macports 似乎没有得到正确的版本。我下载了 RVM 并使用它再次安装 Ruby (1.9.2) 和 RubyGems,然后使用新的 ruby​​gems 再次安装 rails 和 sqlite3-ruby 绑定。服务器仍然没有在旧应用程序上运行(正如预期的那样,我猜)但是当我创建一个新应用程序时,现在一切正常。谢谢!
【解决方案2】:

一定要使用上面提到的 RVM,然后在你的应用目录中试试这个:

rm -rf .bundle && 捆绑安装

【讨论】:

  • 谢谢。我使用了 RVM——Ruby (1.8.7) 的版本与 Rails 或 sqlite3 之间存在冲突。无论如何,使用 RVM 升级到 Ruby 1.9.2 解决了这个问题(尽管最新的 1.9.3 开发版本没有工作)
  • 运行该命令后,当它显示$ rm -rf .bundle && bundle install Bundler::GemfileNotFound 时你会怎么做?
  • 这意味着您的项目中缺少 Gemfile。
【解决方案3】:

我有同样的问题。这是我的解决方法。

移除了 gem sqlite3-ruby 做了捆绑安装 重新安装了宝石 重新创建了 rails 应用程序

现在 webrick 工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    相关资源
    最近更新 更多