ruby on rails - problem bundle install nokogiri 1.7.2 on ruby on rails 4.x

Viewed 515

I have problem trying to do bundle install nokogiri 1.7.2

I am using

gem 'rails', '4.2.4'
MacOS High Sierra version 10.13.6

Im not sure what is wrong

below is my error output:

full error output:

https://gist.github.com/axilaris/68e7df57c3e29366d7a1998eebd93517

this is where the error description:

An error occurred while installing nokogiri (1.7.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.7.2'` succeeds before bundling.

In Gemfile:
  rails_admin was resolved to 1.1.1, which depends on
    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.8, which depends on
              nokogiri

UPDATE, didnt work with sudo gem install nokogiri

$ sudo gem install nokogiri -v '1.7.2'
Building native extensions.  This could take a while...

....

Building Nokogiri with a packaged version of libxml2-2.9.4
with the following patches applied:
    - 0001-Fix-comparison-with-root-node-in-xmlXPathCmpNodes.patch
    - 0002-Fix-XPointer-paths-beginning-with-range-to.patch
    - 0003-Disallow-namespace-nodes-in-XPointer-ranges.patch

Team Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:

    gem install nokogiri -- --use-system-libraries
        [--with-xml2-config=/path/to/xml2-config]
        [--with-xslt-config=/path/to/xslt-config]

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install

Note, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.4.tar.gz into tmp/x86_64-apple-darwin17/ports/libxml2/2.9.4... OK
Running git apply with /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.7.2/patches/libxml2/0001-Fix-comparison-with-root-node-in-xmlXPathCmpNodes.patch... OK
Running git apply with /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.7.2/patches/libxml2/0002-Fix-XPointer-paths-beginning-with-range-to.patch... OK
Running git apply with /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.7.2/patches/libxml2/0003-Disallow-namespace-nodes-in-XPointer-ranges.patch... OK
Running 'configure' for libxml2 2.9.4... OK
Running 'compile' for libxml2 2.9.4... ERROR, review '/Library/Ruby/Gems/2.3.0/gems/nokogiri-1.7.2/ext/nokogiri/tmp/x86_64-apple-darwin17/ports/libxml2/2.9.4/compile.log' to see what happened. Last lines are:
...

Maybe related to this ? https://github.com/sparklemotion/nokogiri/issues/1690

UPDATE 18.9.2018

I noticed major issue with my rails environment on my laptop. i tried to create a new rails app. nokogiri causing major issues to my environment. what is the issue and how to resolve this ? https://gist.github.com/axilaris/03882e15d2cbd603279a654547752f9c

4 Answers

Sometimes happens to me as well, in which case I just install nokogiri via gem install nokogiri -v '1.7.2' as the error suggests. If that fails, try gem uninstall nokogiri -v '1.7.2' first and retry...

As mentioned by xploshioOn, use sudo gem install as last resort.

Sometimes this is a pain, I'm not even sure why this happens randomly. however, here is how I solve it most of the time.

brew unlink xz
gem install nokogiri
brew link xz

If that does not help, throws an error again with libxml2, you should do the following

brew install libxml2

and then

gem install nokogiri -- --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

You can allow bundler to resolve dependencies again with

  • run brew upgrade libxml2
  • remove block code in Gemfile.lock file, starting from rails_admin till next blank line
  • save the file
  • run bundle install

Once, my Mac could not find the libxml2 library until I had accepted xCode's license agreement:

sudo xcodebuild -license accept

You may also want to encourage the machine to use the xCode libxml2:

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