ruby на рельсах - проблемная связка установки нокогири 1.7.2 на ruby ​​на рельсах 4.x - PullRequest
0 голосов
/ 04 сентября 2018

У меня проблема с установкой пакета nokogiri 1.7.2

Я использую

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

Я не уверен, что не так

ниже выводится моя ошибка:

полная ошибка вывода:

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

здесь описание ошибки:

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

ОБНОВЛЕНИЕ, не работал с 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:
...

Может быть, связано с этим? https://github.com/sparklemotion/nokogiri/issues/1690

ОБНОВЛЕНИЕ 18.9.2018

Я заметил серьезную проблему с моим окружением рельсов на моем ноутбуке. Я пытался создать новое приложение рельсы. нокогири вызывает серьезные проблемы в моей среде. в чем проблема и как ее решить? https://gist.github.com/axilaris/03882e15d2cbd603279a654547752f9c

Ответы [ 4 ]

0 голосов
/ 14 сентября 2018

Вы можете разрешить сборщику разрешать зависимости снова с помощью

  • пробег brew upgrade libxml2
  • удалить код блока в файле Gemfile.lock, начиная с rails_admin до следующей пустой строки
  • сохранить файл
  • пробег bundle install
0 голосов
/ 12 сентября 2018

Однажды мой Mac не мог найти библиотеку libxml2, пока я не принял лицензионное соглашение xCode:

sudo xcodebuild -license accept

Вы можете также рекомендовать машине использовать 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/
0 голосов
/ 14 сентября 2018

Иногда это боль, я даже не уверен, почему это происходит случайно. однако, вот как я решаю это большую часть времени.

brew unlink xz
gem install nokogiri
brew link xz

Если это не помогает, выдает ошибку снова с libxml2, вы должны сделать следующее

brew install libxml2

, а затем

gem install nokogiri -- --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
0 голосов
/ 04 сентября 2018

Иногда со мной тоже бывает, и в этом случае я просто устанавливаю nokogiri через gem install nokogiri -v '1.7.2', как подсказывает ошибка. Если это не помогло, попробуйте сначала gem uninstall nokogiri -v '1.7.2' и повторите попытку ...

Как уже упоминалось в xploshioOn, используйте sudo gem install в качестве крайней меры.

...