我无法构建 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。
我知道这一定是我的问题(我怀疑这很愚蠢),但我不知道怎么做。有人可以帮忙吗?