... он работает на моей машине ...; -)
Хотя в Учебном пособии по Nokogiri предлагается сложное ручное изготовление вашей местной среды - см. https://www.nokogiri.org/tutorials/installing_nokogiri.html - если придерживаться какого-либо из нихВ общем, я хотел бы уйти вперёд и попробовать направление обновления системной библиотеки, а не пытаться заставить Nokogiri собирать более старую версию, хотя бы потому, что если вы устанавливаете гем с использованием bundler, вы не захотите возитьсяв любом случае с ручными установками драгоценных камней.(За исключением устранения неполадок, повторяйте этот драгоценный камень снова и снова, пока он не заработает, а затем убедитесь, что компоновщик может это сделать, но установка Nokogiri здесь не проблема).
... потому что:хотя вы, возможно, не захотите устанавливать его на веб-сервере в конце, придерживаться принципа объявления и изоляции зависимостей с помощью приложения, как описано в https://12factor.net/dependencies, по-прежнему отличная идея.
И связкаи rvm (или rbenv) - инструменты для этого в мире ruby / rails (или, в этом отношении, bundler и docker, который я не рекомендовал бы в этой ситуации).
Если это все еще не 'Чтобы работать с rvm, я бы сделал следующее:
- используйте rvm с наборами гемов.
убедитесь, что текущая оболочка использует ту версию gemset и ruby, которую вы хотите.Always.
rvm use 2.5.1@my-gemset --create --ruby-version
(с соответствующей версией ruby) создает комбинацию ruby-version + gemset и создает файлы .ruby- * в директории, убедившись, чтоэтот набор используется, когда вы перейдете в этот каталог.все мои рельсы-приложения имеют это.Ваш путь выше показывает, что rvm выбрасывает все гемы для одной версии ruby в один каталог)
- удалить все гемы в наборе гемс:
$ rvm gemset empty
- и переустановить их:
- run:
$ gem install bundler
- и затем:
$ bundle install
(это грубый, но эффективный способ заставить rvm убедиться, что ваше приложение / rails / bundler победило 't выбрать другую версию любого драгоценного камня, находящегося в вашей общесистемной папке или в папке gem для всей системы rvm-ruby-version - ни один из ваших журналов не показал, какая версия Nokogiri на самом деле работала)
вы можете проверить наgems в вашем наборе gem с помощью `ls $ (rvm gemset dir) / gems
nb: один из ответов переполнения стека на эту тему предлагает поместить gem rails
в верхней части файла Gemfile:
Как загрузить правильную версию динамических библиотек и гемов (libxml, Nokogiri) в пользовательский гем движка Rails?
и действительно, порядок Gemfile имеет значение при запуске rails:
Делает ли порядок камней в вашем Gemfilefference?
, так что это тоже может быть хорошей идеей.