ruby-on-rails - 捆绑安装错误安装 nokogiri (1.6.7.2)。Gem 安装但不适用于 rails 应用程序
问题描述
我正在开发一个使用 ruby 2.1.5 的 rails 项目。我下载了 rvm,安装了 ruby 2.1.5,目前正在使用它。我在 Ubuntu 18.04 上。我在运行时收到以下错误bundle install
gem install nokogiri -v '1.6.7.2'
此外,当我按照指示尝试时,它安装得很好。在这种情况下,我找不到另一个问题。
我在 El Capitan 上安装 Nokogiri (1.6.7) 时查看了这个问题Error 并尝试了所有解决方案。这可能是我遇到的另一个问题。它可能与rvm有关,但我不确定。
$ bundle install
Fetching gem metadata from https://rubygems.org/........
Using rake 11.1.2
Using CFPropertyList 2.3.3
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.8.4
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.4
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.0.0
Fetching nokogiri 1.6.7.2
Installing nokogiri 1.6.7.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/gems/nokogiri-1.6.7.2/ext/nokogiri
/usr/share/rvm/rubies/ruby-2.1.5/bin/ruby -r ./siteconf20190123-15188-1qpzj0b.rb extconf.rb
--use-system-libraries
checking if the C compiler accepts ... *** 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=/usr/share/rvm/rubies/ruby-2.1.5/bin/ruby
--help
--clean
/usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to
generate an executable file. (RuntimeError)
You have to install development tools first.
from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:571:in `block in try_compile'
from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:522:in `with_werror'
from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:571:in `try_compile'
from extconf.rb:80:in `nokogiri_try_compile'
from extconf.rb:87:in `block in add_cflags'
from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:621:in `with_cflags'
from extconf.rb:86:in `add_cflags'
from extconf.rb:336:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/nokogiri-1.6.7.2/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in
/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/gems/nokogiri-1.6.7.2
for inspection.
Results logged to
/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/nokogiri-1.6.7.2/gem_make.out
An error occurred while installing nokogiri (1.6.7.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.7.2' --source 'https://rubygems.org/'` succeeds
before bundling.
In Gemfile:
rails was resolved to 4.2.4, which depends on
actionmailer was resolved to 4.2.4, which depends on
actionpack was resolved to 4.2.4, which depends on
actionview was resolved to 4.2.4, which depends on
rails-dom-testing was resolved to 1.0.7, which depends on
nokogiri
但是正如你所看到的,当我运行时, gem install nokogiri -v '1.6.7.2'
它看起来没有问题
$ gem install nokogiri -v 1.6.7.2
Building native extensions. This could take a while...
Successfully installed nokogiri-1.6.7.2
Parsing documentation for nokogiri-1.6.7.2
Done installing documentation for nokogiri after 2 seconds
1 gem installed
解决方案
这些是 ubuntu文档的说明
sudo apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev
对于 rvm
sudo apt-get install libgmp-dev
使用系统库构建
sudo apt-get install libxml2-dev libxslt1-dev
安装
gem install nokogiri --use-system-libraries
推荐阅读
- amazon-web-services - 如何从 s3 存储桶中删除空子文件夹?
- javascript - 如何正确地将位键转换为 aes 256 加密的字符串?
- python - 在 30 秒内每秒翻倍价值的便士问题
- r - R中的仿真模型和For循环
- javascript - 我似乎无法理解为什么当我的网络应用在本地正常运行时 Firebase 返回错误 400
- php - 如果在laravel中执行时间超过30分钟,如何终止程序
- java - java中基于LocalDate的dynamodb过滤器
- c++ - Qt QMessageBox摆脱标签左边距
- node.js - 即使我在控制台记录值,反应错误也不是一个功能?
- c++ - 调用 std::call_once 时出现异常