2

我无法构建 rails sqlite3 gem。无论我安装 sqlite3-ruby 还是只安装 sqlite3,它都失败了。由于 sqlite3 是由 macports 安装的,所以它都在 /opt/local 中。我用rvm。我正在使用新更新的 OS X Mountain Lion Macbook。

flyer$ which sqlite3
/opt/local/bin/sqlite3
flyer$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-darwin11.4.0]
flyer$ rails -v
Rails 2.3.14

flyer$ gem install sqlite3-ruby -- --with-opt-dir
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

        /Users/russ/.rvm/rubies/ruby-1.8.7-p358/bin/ruby extconf.rb --with-opt-dir
/Users/russ/.rvm/rubies/ruby-1.8.7-p358/lib/ruby/1.8/mkmf.rb:1164:in `dir_config': private method `split' called for true:TrueClass (NoMethodError)
    from /Users/russ/.rvm/rubies/ruby-1.8.7-p358/lib/ruby/1.8/mkmf.rb:1745:in `init_mkmf'
    from /Users/russ/.rvm/rubies/ruby-1.8.7-p358/lib/ruby/1.8/mkmf.rb:1770
    from extconf.rb:3:in `require'
    from extconf.rb:3
***dir_config: dir is true, target is opt, idefault is , ldefault is 

Gem files will remain installed in /Users/russ/.rvm/gems/ruby-1.8.7-p358/gems/sqlite3-1.3.6 for inspection.
Results logged to /Users/russ/.rvm/gems/ruby-1.8.7-p358/gems/sqlite3-1.3.6/ext/sqlite3/gem_make.out

开头的那一行***dir_config:是我在 mkmf.rb 第 1164 行之前添加的 puts 语句的输出。第 1164 行是

defaults = Array === dir ? dir : dir.split(File::PATH_SEPARATOR)

请注意,我无法升级 ruby​​ 或 rails,因为我需要匹配我的托管服务提供商的版本。我相信这是在我的 Mountain Lion 升级之前构建的,我今天确实安装了最新的 XCode。

我知道这一定是我的问题(我怀疑这很愚蠢),但我不知道怎么做。有人可以帮忙吗?

4

1 回答 1

0

我没有足够的声誉来发表评论,所以我想我会发布一个可能没有帮助的答案。老实说,我也真的不明白这个错误,但我想知道它是否与 Ruby 版本或操作系统有关。我看到有些人就 Mountain Lion 的本地库问题发表了一些看法。我在 SO 上找到了这个答案;我会尝试他的第二个和第三个选项(不是雪豹选项),看看这是否有什么不同。

于 2012-08-17T21:10:18.530 回答