在rails 3.1.0和ubuntu上安装Nokogiri 1.5.0时出错

这是在服务器上运行bundle install vendor / gem的错误:

Installing nokogiri (1.5.0) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /home/dtt/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb checking for libxml/parser.h... no ----- libxml2 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 --without-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=/home/dtt/.rvm/rubies/ruby-1.9.2-p290/bin/ruby --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --with-iconv-dir --without-iconv-dir --with-iconv-include --without-iconv-include=${iconv-dir}/include --with-iconv-lib --without-iconv-lib=${iconv-dir}/lib --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib --without-xml2-lib=${xml2-dir}/lib --with-xslt-dir --without-xslt-dir --with-xslt-include --without-xslt-include=${xslt-dir}/include --with-xslt-lib --without-xslt-lib=${xslt-dir}/lib Gem files will remain installed in /vol/www/emclab/releases/20111104001151/vendor/gems/ruby/1.9.1/gems/nokogiri-1.5.0 for inspection. Results logged to /vol/www/emclab/releases/20111104001151/vendor/gems/ruby/1.9.1/gems/nokogiri-1.5.0/ext/nokogiri/gem_make.out An error occured while installing nokogiri (1.5.0), and Bundler cannot continue. Make sure that `gem install nokogiri -v '1.5.0'` succeeds before bundling. 

你可以跳过这部分。 错误信息是非常自我解释,但网站需要更多的单词解释代码。

有什么想法吗?

你需要在你的机器上安装所有必要的库。 当你安装RVM时,它应该已经为你列出了这个。 在rvm的当前版本上,您可以运行rvm requirements来查看确切的列表。 现在,这个名单是:

sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion

你错过了一些包。 尝试运行这个(仅限Linux):

 $ sudo apt-get install libxslt-dev libxml2-dev 

它看起来像一个gem依赖性错误。

您需要运行bundle update命令。 它将解决依赖关系:

 bundle update 

您需要安装libxml2。

在Mac OS上,使用自制软件,这将是:

 brew install libxml2 

请参阅http://nokogiri.org/tutorials/installing_nokogiri.html

只要这样做:

 sudo apt-get install libxslt-dev libxml2-dev libxml2 

然后在terminal(linux)/ cmd(windows)中input:

 export NOKOGIRI_USE_SYSTEM_LIBRARIES=true 

如果别人不工作,试试这个,它真的对我有用。 用于CentOS的Devtools

当我使用这个代码时,我得到了另一个错误:

 ERROR: Error installing disposable: invalid gem: package is corrupt, exception while verifying: undefined method `size' for nil:NilClass (NoMethodError) in /home/admin/.rvm/gems/ruby-2.1.3@lol/cache/nokogiri-1.6.4.1.gem 

我尝试了许多不同的解决scheme,但是帮助医生

 $ rm /home/admin/.rvm/gems/ruby-2.1.3@lol/cache/nokogiri-1.6.4.1.gem $ gem update $ gem install nokogiri 

其他的命令可以帮助:

 sudo apt-get install synaptic sudo apt-get update sudo apt-get install qt4-dev-tools libqt4-dev libqt4-core libqt4-gui sudo apt-get install build-essential sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev