无法捆绑安装(nokogiri 1.5.2)旧项目,新计算机



我已经有一年左右没有接触Rails应用程序了,我决定尝试启动并运行该应用程序,但由于我认为Gemfile中的某个依赖项,我被卡住了。我已将其包含在底部。

我的问题是我遇到了错误:

ERROR:  Error installing nokogiri:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
extconf.rb:10:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:10:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:11:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... no
-----
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
An error occurred while installing nokogiri (1.5.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.2'` succeeds before bundling.

然而,在尝试单独安装Nokogiri时,我发现我可以安装-v1.6.3.1而不会出错。我知道libxml2、libiconv等安装在我的计算机中,但不确定这些版本是否与Nokogiri 1.5.2所期望的相匹配。此外,我尝试使用xcode-select --install方法,但没有成功。

所以我的问题是:

  1. 如何更新我的gemfile以使用我可以安装的Nokogiri 1.6.3.1。当我不知道哪颗宝石正在使用它作为依赖项时,有没有办法查找它?

  2. 在不逐一移除每一颗宝石的情况下,有没有办法将野村全部移除?

  3. 如果没有办法做到#1或#2,那么我如何才能成功安装Nokogiri 1.5.2?

Gemfile:

source 'http://rubygems.org'
gem 'rails', '3.2.8'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'sass-rails',   '3.2.4'
gem 'coffee-rails', '3.2.2'
gem 'compass-rails'
gem 'compass-960-plugin'
gem 'uglifier', '1.2.3'
gem 'chosen-rails'
gem 'bbcoder'
gem 'sanitize'
gem 'devise'
gem 'possessive'
gem 'err_merchant', :git => "git://github.com/iindigo/err_merchant.git"
gem 'impressionist'
#gem 'kaminari'
#gem 'bcrypt-ruby', '3.0.1'   to use rails has_secure_passwordv
group :development do
gem 'sqlite3', '1.3.5'
gem 'annotate', '2.5.0'
gem 'rails-erd'
gem 'rack-mini-profiler'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
end
gem 'jquery-rails'
gem 'rails_tokeninput', '1.6.1.rc1'
gem 'selectivizr-rails'
gem 'friendly_id'
gem 'haml'
gem 'browser'
group :test, :development do
 gem 'rspec-rails', '2.8.1'
 gem 'spork', '0.9.0'
end
group :test do
 gem 'capybara', '1.1.2'
 gem 'factory_girl_rails', '1.4.0'
end
group :production do
 gem 'sqlite3', '1.3.5'
 # gem 'therubyracer'
end

sudo apt-get install ruby-dev libxml2-dev libxslt-dev,然后再次尝试运行bundle install

我发现,通过执行命令bundle update "gemnamehere",可以在更新失败的情况下获得每个gem的依赖项列表。

这反过来又让我能够弄清楚我需要更改哪些宝石才能让Nokogiri更新。

最新更新