[英]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
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.