简体   繁体   English

宝石文件不会更新或与捆绑器一起安装

[英]Gem File won't update or install with bundler

I'm working on Michael Hartl's RoR tutorials. 我正在研究Michael Hartl的RoR教程。 I'm on chapter 3. Unfortunately, copy and pasting the gem files won't work for me, but I figured out which gem is the problem. 我在第3章上。不幸的是,复制和粘贴gem文件对我来说不起作用,但是我发现了哪个gem是问题所在。 It's the capybara gem. 这是水豚宝石。 I've commented it out and continued the tutorial, but I'm at the point where I need to use the gem. 我已将其注释掉并继续本教程,但现在我需要使用gem。

Here is an example $bundle update giving me an error: 这是$ bundle更新的示例,给我一个错误:

$ bundle update
Fetching gem metadata from https://rubygems.org/.........

(Removed a bunch of text)

Building nokogiri using system libraries.

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/dbz/.rvm/rubies/ruby-2.0.0-p481/bin/ruby extconf.rb --use-system-libraries
Building nokogiri using system libraries.
libxml2 version 2.6.21 or later is required!
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

(Removed a bunch of text)


Gem files will remain installed in /Users/dbz/.rvm/gems/ruby-2.0.0-p481/gems/nokogiri-1.6.3.1 for inspection.
Results logged to /Users/dbz/.rvm/gems/ruby-2.0.0-p481/gems/nokogiri-1.6.3.1/ext/nokogiri/gem_make.out
An error occurred while installing nokogiri (1.6.3.1), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '1.6.3.1'` succeeds before bundling.

I tried going to the nokogiri website and fixing the problem, but when I try to update the missing libraries (an earlier part of the error), my machine says I already have them. 我尝试访问了nokogiri网站并解决了该问题,但是当我尝试更新缺少的库(错误的较早部分)时,我的机器说我已经有了它们。

Here is my Gemfile: 这是我的Gemfile:

source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.8'

group :development, :test do
  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails', '2.13.1'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  #gem 'capybara', '2.1.0'   # This line breaks everything
end

gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

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

EDIT: From the http://nokogiri.org/tutorials/installing_nokogiri.html install page 编辑:从http://nokogiri.org/tutorials/installing_nokogiri.html安装页面

I followed all of the steps and at the final step where I need to run the command 我遵循了所有步骤,并在最后一步需要运行命令

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 
                    --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
                    --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
                    --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                    --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

The output from my console is: 我的控制台的输出是:

Daniels-MacBook-Air:libiconv-1.13.1 dbz$ pwd
/Users/dbz/libiconv-1.13.1
Daniels-MacBook-Air:libiconv-1.13.1 dbz$ gem install nokogiri -- --with-xml2-    include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 
                    --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
                    --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
                    --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                    --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
Building native extensions with: '--with-xml2-    include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /Users/dbz/.rvm/rubies/ruby-2.0.0-p481/bin/ruby extconf.rb --with-xml2-    include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2
Building nokogiri using packaged libraries.
-----
libiconv is missing.  please visit     http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/dbz/.rvm/rubies/ruby-2.0.0-p481/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build


Gem files will remain installed in /Users/dbz/.rvm/gems/ruby-2.0.0-p481@railstutorial_rails_4_0/gems/nokogiri-1.6.3.1 for inspection.
Results logged to /Users/dbz/.rvm/gems/ruby-2.0.0-p481@railstutorial_rails_4_0/gems/nokogiri-1.6.3.1/ext/nokogiri/gem_make.out
Daniels-MacBook-Air:libiconv-1.13.1 dbz$                         --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
-bash: --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib: No such file or directory
Daniels-MacBook-Air:libiconv-1.13.1 dbz$                         --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
-bash: --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26: No such file or directory
Daniels-MacBook-Air:libiconv-1.13.1 dbz$                         --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
-bash: --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include: No such file or directory
Daniels-MacBook-Air:libiconv-1.13.1 dbz$                         --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
-bash: --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib: No such file or directory

You might be missing some packages. 您可能缺少某些软件包。 Try installing them manually 尝试手动安装它们

For Mac OSX: 对于Mac OSX:

$ sudo port install libxml2 libxslt

With homebrew homebrew

$ brew install libxml2

Checkout this LINK here for more information. 在此处查看此链接以获取更多信息。 Goodluck! 祝好运!

I found a solution that worked: 我找到了一个可行的解决方案:

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

From: Nokogiri 'Failed to build gem native extension' when I run bundle install 来自: Nokogiri运行捆绑包安装时“无法构建gem本机扩展”

Source's source: https://github.com/sparklemotion/nokogiri/issues/1099#issuecomment-43023208 资料来源: https : //github.com/sparklemotion/nokogiri/issues/1099#issuecomment-43023208

Just type this in console: gem install nokogiri -v '1.6.3.1' then hit enter... After that finishes... run bundle 只需在控制台中键入: gem install nokogiri -v '1.6.3.1'然后按Enter键即可。完成后,运行bundle

If you're using homebrew.. type: brew update then type brew doctor 如果您使用自制软件,请输入: brew update然后输入brew doctor

Just resolved the same issue after I saw your post. 在看到您的帖子后,刚刚解决了同样的问题。 It's a problem with Homebrew not including libicov with versions 9.0 and up. Homebrew的问题不包括9.0及更高版本的libicov。 You'll need to manually install the library then install with the lib paths defined. 您需要手动安装该库,然后使用定义的lib路径进行安装。 See http://nokogiri.org/tutorials/installing_nokogiri.html 请参阅http://nokogiri.org/tutorials/installing_nokogiri.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM