ruby-on-rails - Gem libxml-ruby (1.1.4) 安装但在运行时失败

标签 ruby-on-rails ruby ruby-on-rails-3 osx-mavericks libxml2

我正在尝试在 Mavericks 上运行一个相当古老的 Rails 应用程序,其中一项要求是: - ruby ree-1.8.7-2009.10 - rails 3.0.0 - libxml-ruby 1.1.4(这是与其余 gem 兼容的最新版本。

我安装了最新的 libxml2 包。它是 Homebrew (2.9.1) 的版本。

为了安装这个 gem,我使用了以下命令:

$ CC=gcc-4.2 gem install libxml-ruby -v '1.1.4'

输出提示成功:

Building native extensions.  This could take a while...
Successfully installed libxml-ruby-1.1.4
1 gem installed

尽管当我尝试运行一些 rake 任务时,即创建数据库 捆绑执行 rake db:create

我收到以下错误:

$ bundle exec rake db:create                                                                                               [ree-1.8.7-2009.10@mygemset]
rake aborted!
dlsym(0x7ffa2d83bbe0, Init_libxml_ruby): symbol not found - /Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/libxml-ruby-1.1.4/lib/libxml_ruby.bundle
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/libxml-ruby-1.1.4/lib/libxml_ruby.bundle
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:597:in `new_constants_in'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/libxml-ruby-1.1.4/lib/libxml.rb:9
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:597:in `new_constants_in'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/Developer/my-project/vendor/private_gems/restful_authentication-1.4.9/lib/sso/sso.rb:3
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:597:in `new_constants_in'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in `load_dependency'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@mygemset/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in `require'
/Users/myuser/Developer/my-project/vendor/private_gems/restful_authentication-1.4.9/lib/restful_sso_authentication.rb:2
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@global/gems/bundler-1.5.2/lib/bundler/runtime.rb:76:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@global/gems/bundler-1.5.2/lib/bundler/runtime.rb:76:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@global/gems/bundler-1.5.2/lib/bundler/runtime.rb:72:in `each'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@global/gems/bundler-1.5.2/lib/bundler/runtime.rb:72:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@global/gems/bundler-1.5.2/lib/bundler/runtime.rb:61:in `each'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@global/gems/bundler-1.5.2/lib/bundler/runtime.rb:61:in `require'
/Users/myuser/.rvm/gems/ree-1.8.7-2009.10@global/gems/bundler-1.5.2/lib/bundler.rb:131:in `require'
/Users/myuser/Developer/my-project/config/application.rb:5
/Users/myuser/Developer/my-project/Rakefile:6:in `require'
/Users/myuser/Developer/my-project/Rakefile:6
(See full trace by running task with --trace)

我已经尝试了很多可以在 Internet 上找到的方法(最相关的例子是关于安装 Nokogiri 的问题和列出的类似错误),但都没有奏效。

最佳答案

这是我在各种 Mac 操作系统上长期安装 Rubies 的方法。对我来说,任何图书馆或 gem 都没有问题。例如更复杂的 Nokogiri gem 构建和工作就像一个魅力。

检查 XCode 版本

xcodebuild -version
xcode-select --install

根据文档安装 Homebrew

安装先决条件

brew doctor; # Just do what it wants!
brew update;
brew upgrade; # Watch out! for existing bottles
brew install libtool libxml2 libxslt openssl sqlite libyaml;
brew install autoconf automake apple-gcc42;
brew cleanup; # Watch out! for existing bottles
brew tap homebrew/dupes; # Watch out! for existing bottles

安装 RVM

curl -L https://get.rvm.io | bash -s stable # Latest stable
rvm get latest
rvm reload # :)
rvm autolibs enable
rvm requirements

安装 ruby

rvm install 2.1 --disable-binary

关于ruby-on-rails - Gem libxml-ruby (1.1.4) 安装但在运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21192772/

相关文章:

javascript - rails teaspoon 在引擎中测试未加载 *_spec.js

ruby-on-rails - 使用正则表达式验证日期格式

ruby-on-rails - 打开Spree::User类并添加功能而不丢失现有功能

ruby-on-rails - 部署 ruby​​ api 谷歌云

ruby-on-rails-3 - 我可以在 Rails 3 中将文本字符串呈现为部分吗?

javascript - 使用 Ruby on Rails 检查选择文件时的文件扩展名 'file_field' 并显示错误消息(如果有)

ruby-on-rails - Rails has_and_belongs_to_many 迁移

ruby - 用完 Net::HTTP 的套接字连接

ruby - 无法使用 facebook 进行身份验证 : undefined method 'web_server' for OAuth2?

ruby-on-rails - 两个关系的交集