【问题标题】:Nokogiri gem installation error with spreeNokogiri gem安装错误与狂欢
【发布时间】:2014-01-05 14:16:47
【问题描述】:

我在尝试捆绑安装时遇到此错误

Bundler::GemspecError: Could not read gem at /home/theareba/.rvm/gems/ruby-2.0.0-p353/cache/nokogiri-1.6.1.gem. It may be corrupted.
An error occurred while installing nokogiri (1.6.1), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '1.6.1'` succeeds before bundling.

我尝试删除缓存中的 nokogiri 并再次捆绑安装,但徒劳无功。 这是我的gemfile

source 'https://rubygems.org'
gem 'rails', '4.0.0'
ruby "2.0.0"

gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-1-stable'
gem 'spree', github: 'spree/spree', branch: '2-1-stable'
gem 'bootstrap-sass', '2.3.2.0'

gem 'sass-rails' 
gem 'uglifier'
gem 'coffee-rails'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder'

group :development, :test do
  gem 'turn', :require => false 
  gem 'sqlite3'
  gem 'taps', :require => false
  gem 'rspec-rails'
end

group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor'
end

更新 运行 gem install nokogiri -v '1.6.0' 时发生的错误

Fetching: mini_portile-0.5.2.gem (100%)
Fetching: nokogiri-1.6.0.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:5:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.6.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.6.0/ext/nokogiri/gem_make.out

注意:我已经安装了libxslt1-devlibxml2-dev,这是 nokogiri 安装的要求。 我也试过gem install nokogiri -v '1.6.1',但还是失败了。我已经在另一个应用程序中安装了 nokogiri -v 1.5.0,所以我在这个应用程序中尝试了它并得到了 spree 需要 nokogiri 版本 1.6.0 或更高版本的错误。我错过了什么?

【问题讨论】:

  • 请在gem install nokogiri 命令上添加错误跟踪
  • 并添加mkmf.log
  • @Monk_Code 我在 gem install nokogiri 上添加了错误跟踪。
  • @majioa 我如何找到 mkmf.log?
  • 你没有安装mkmf...奇怪...

标签: ruby-on-rails ruby gem nokogiri


【解决方案1】:

所以这就是解决我的问题的方法。我创建了一个新的 gemset,即

rvm gemset create nokogiri
rvm use ruby-2.0.0-p353@nokogiri

注意:我使用的是 rvm 和 ruby​​ 2.0.0。然后我确保通过运行安装了必要的库

sudo apt-get install  libxml2-dev libxslt-dev

这些库恰好已经安装。然后我安装了 nokogiri

gem install nokogiri -v '1.6.1'

安装成功。最后运行bundle install 得到我所有的宝石。希望这可以帮助任何有同样问题的人。

【讨论】:

  • 我遇到了一个与 ruby​​ 2.0.0-p353 非常相似的问题,该问题仍未解决。有趣的是,我可以使用 Ruby 2.0.0-p195 成功安装 nokogiri。请在此处查看我的帖子:stackoverflow.com/questions/20983515/…
  • 在 centOS 上我遇到了 nokogiri 编译 libxml2 的问题,请注意,您可以安装 libxml2 的打包版本,然后使用它来构建 gem:sudo apt-get install libxml2; gem install nokigiri -- --use-system-libraries
【解决方案2】:

检查 RVM gemset。我通过恢复 gemset 来修复它。如果您尝试升级到 4.0.2?我将 Nokogiri 1.6.1 与 Ruby 2.0.0 和 Rails 4.0.2 一起使用

【讨论】:

    【解决方案3】:

    试试这个

    sudo apt-get install ruby-dev
    sudo apt-get install libxml2 libxml2-dev libxslt1-dev
    


    并重新安装nokogiri

    sudo gem install nokogiri
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 2015-02-14
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多