Ошибка установки пакета при установке nokogiri (1.6.7.2). Gem устанавливается, но не для приложения rails - PullRequest
0 голосов
/ 23 января 2019

Я работаю над проектом rails, который использует ruby ​​2.1.5. Я скачал rvm, установил ruby ​​2.1.5 и сейчас использую это. Я на Ubuntu 18.04. Я получаю сообщение об ошибке ниже, когда я запускаю bundle install

Также, когда я пытаюсь gem install nokogiri -v '1.6.7.2', как указано, он просто отлично устанавливается. Я не мог найти другой вопрос, где это имело место.

Я посмотрел на этот вопрос Ошибка при установке Nokogiri (1.6.7) на El Capitan и перепробовал все решения. Это может быть другой проблемой, с которой я столкнулся. Это может быть связано с 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

Ответы [ 3 ]

0 голосов
/ 24 января 2019

Это инструкции для ubuntu docs

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
0 голосов
/ 24 января 2019

Я исправил это, но это может быть неудовлетворительным ответом.Я прошел все советы, установил различные зависимости, изменил различные настройки.Казалось, ничего не работает. Затем я удалил папку проекта и снова вытащил ее из Github, переустановил rvm, снова запустил bundle install и все заработало нормально.

Так чего же мне не хватало?Я не могу быть уверен.Но я могу сказать, что если ничего не работает, создайте новую папку, загрузите проект снова и запустите bundle install .. после первой установки всех зависимостей / инструментов, конечно, здесь -> https://nokogiri.org/tutorials/installing_nokogiri.html

0 голосов
/ 23 января 2019

согласно ссылке здесь Установка Nokogiri

gem update --system
xcode-select --install # Then agree to the terms, even if you have done this before!
gem install nokogiri

# if that's still not working uninstall the old nokogiri 
gem uninstall nokogiri

этот вариант выше для Mac OS и для Ubuntu уже упоминается Javier (в другом ответе, если проблема не устранена, мое предложение вы делаетесначала удалите gem nokogiri, а затем установите gem nokogiri -v '1.6.7.2'

...