MacRuby,使用 Sequel 时出错

Posted

技术标签:

【中文标题】MacRuby,使用 Sequel 时出错【英文标题】:MacRuby, error when using Sequel 【发布时间】:2010-12-02 20:37:07 【问题描述】:

我刚刚使用命令sudo macgem install sequel 安装了Sequel。它告诉我 sequel-3.18.0 已成功安装。

当我启动 xcode 并启动一个新的 MacRuby 应用程序时,它会为单元测试设置一个目标。我用以下两行修改了stub_test.rb

require "rubygems"
require "sequel"

在尝试运行单元测试时,我收到以下错误:

/Users/.../macRuby Test/Tests/run_suite.rb:1:in `<main>': super: no superclass method `require' for Sequel:Class (NoMethodError)

没有两个require 语句,测试运行良好。

我尝试用谷歌搜索,发现以下ticket on macruby.org:

票 #930 MacRuby 0.7 中的 SIGABRT 和 Sequel + SQLite3-Ruby gem [...] 在 Sequel 中修补 Kernel#require 问题后,我可以毫无问题地加载 Sequel 和 SQLite3。 [...] 所需的库是 Sequel(为 Kernel.require 打补丁,而不是 Sequel#self.require 中的 super)和 SQLite3-Ruby。 [...]

我在其他任何地方都找不到有关此补丁的任何信息...

有任何已知问题吗? 此错误消息是什么意思,我该如何让它工作?

【问题讨论】:

【参考方案1】:

您运行什么版本的 MacRuby?另外,您运行 32 位 Mac 吗?

在我的环境中,运行 MacRuby 主干的 64 位 Intel mac,我能够安装并需要续集。

$ /usr/local/bin/macruby -r ruby​​gems -e “需要‘续集’;p 42” 42

正如 Eloy 所说,最好将 MacRuby 问题报告到我们的邮件列表或工单跟踪中。 http://www.macruby.org/contact-us.html

【讨论】:

我在 2009 年末的英特尔 macbook pro 上使用 macruby 0.7(最新稳定版本)。我将尝试最新版本。 最后一次构建让我更进一步,谢谢。尽管如此,仍然无法正常工作,但我认为这可能是一个 sqlite 问题而不是后续问题。 猜猜我安装了错误的 sqlite-gem。通过卸载 sqlite3 并安装 sqlite3-ruby,事情开始看起来不错:-)【参考方案2】:

MacRuby(如 IronRuby)目前没有实现足够多的 ruby​​ 语言来与 Sequel 一起工作。 Sequel 已在 MRI(1.8 和 1.9)、JRuby 和 Rubinius 上进行了测试,因此您可以尝试其中的一种。

【讨论】:

我正在寻找一种在 macruby 应用程序中存储数据的便捷方式,而不是一个可以运行续集的便捷解释器,所以我想我必须寻找其他地方......太糟糕了。续集看起来很棒! 鉴于其他答案表明它确实适用于 MacRuby,但我认为您会知道它是否有效/无效。 工作是指通过所有的规范。如果 macruby 还没有实现正确的超类方法查找,它就不能与 Sequel 完美配合。 Sequel 的某些部分在 macruby 中工作并不让我感到惊讶。 Sequel 的某些部分也可以在 IronRuby 中使用。但我不会依赖 Sequel 在当前版本中的行为。【参考方案3】:

我遇到了similar issues,并且能够使用以下组合使其工作:

MacRuby 0.8
sqlite3-ruby gem 1.3.2
sequel gem 3.18.0
OSX 10.6.5

诀窍是卸载“sqlite3”gem 并安装“sqlite3-ruby”。

【讨论】:

这个组合让我需要sequel gem,但是一旦我开始使用它,我就会遇到分段错误...... 您是否卸载了“sqlite3”gem?我已经能够使用这个组合创建数据库、表、查询等,但它与旧的 gem 出现了段错误。您可能还想尝试删除 ~/.gem/ 中的 gem 缓存。编辑:没关系,刚刚在另一个答案中看到您的回复。【参考方案4】:

由于 MacRuby 仍处于大量开发阶段,我认为您最好在 MacRuby-devel 邮件列表中提出这个问题。知道如何让 Sequel 在 MacRuby 上工作的人(我知道人们已经这样做了)也在那里。

【讨论】:

以上是关于MacRuby,使用 Sequel 时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 MacRuby 应用程序中运行 Sinatra

单件图案MacRuby

Mac 下Sequel pro切换database时,卡死问题

MACruby woo试色

`except': EXCEPT 不支持 (Sequel::InvalidOperation)

我无法使用 Sequel Pro 连接到我的 Sail PHPMyAdmin