【问题标题】:Rails doesn't see my sqlite3Rails 看不到我的 sqlite3
【发布时间】:2011-09-06 08:44:33
【问题描述】:

我最近更换了计算机(装有 OS 10.6.7 的 Mac),我正在尝试启动我的 RoR 应用程序。它不起作用,因为显然 sqlite3 丢失了。我尝试使用

更新它
gem install sqlite3

但它不起作用并发出以下错误:

Error installing sqlite3:
ERROR: Failed to build gem native extension.

但问题是,我可以在终端上使用 sqlite3 命令,它可以完美启动,宣布 3.6.23.1 版本。为什么rails看不到?它确实没有作为 gem 安装,这是为什么呢?关于如何解决这个问题的建议?谢谢。

P.S.:我试过了

port install sqlite3

但它也不起作用,因为:

Error: Cannot install sqlite3 for the arch(s) 'x86_64' because
Error: its dependency readline is only installed for the arch 'i386'
Error: and the configured universal_archs 'i386 ppc' are not sufficient.
Error: Unable to execute port: architecture mismatch

【问题讨论】:

    标签: ruby-on-rails macos sqlite


    【解决方案1】:

    此系统是否从 10.5 升级到 10.6?您在尝试运行 port install sqlite3 时收到的错误消息听起来像是我在完成升级而不是全新安装时收到的一些错误。

    我的猜测:您需要构建一个新版本的 readline(64 位,您当前的似乎是 32 位),然后构建一个新版本的 sqlite3。我不知道您在 readline 上还有多少其他依赖项(可能很多),所以这可能是一个漫长的过程。

    这确实不是我的强项,但正如我所说,我在升级过程中遇到了一堆类似的问题,这就是我解决大部分问题的方法。

    【讨论】:

    • 仅供参考,homebrew 是一个比 macports 或 fink 更好的软件管理系统。
    • @Jeremy 你说得很好。我也使用自制软件,但避免提及它,因为他不一定会走上没有工作系统的漫长道路:P 也许我会很快更新我的答案,因为我同意自制软件是要走的路。
    • 我的是全新​​的 Mac。没升级。如果我只想安装 32 位版本怎么办,有没有办法在使用 Mac Ports 时在命令行中指定?这样我就不需要构建另一个版本的 readline。
    【解决方案2】:

    拥有 sqlite gem 和 sqlite 不是一回事。你已经有了数据库,但是你需要安装 gem 来允许 ruby​​ 访问你的 sqlite 数据库。

    你应该拥有的宝石是

    sqlite3 (1.3.3)
    sqlite3-ruby (1.3.3)
    

    尝试安装 gem sqlite3-ruby 它应该会自动获取正确的依赖项。如果权限不正确,我也看到了该错误,您可能需要以sudo 运行该命令。

    【讨论】:

      猜你喜欢
      • 2012-04-11
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      相关资源
      最近更新 更多