ZaLinux.ru

Ошибка «Could not find ‘nokogiri’» (РЕШЕНО)

В этой статье рассказывается, как исправить ошибку «Could not find 'nokogiri'». Я столкнулся с этой ошибкой при обновлении wpscan:

wpscan --update

Пример ошибки:

Traceback (most recent call last):
	12: from /usr/bin/wpscan:23:in `<main>'
	11: from /usr/lib/ruby/vendor_ruby/rubygems.rb:301:in `activate_bin_path'
	10: from /usr/lib/ruby/vendor_ruby/rubygems.rb:301:in `synchronize'
	 9: from /usr/lib/ruby/vendor_ruby/rubygems.rb:302:in `block in activate_bin_path'
	 8: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1370:in `activate'
	 7: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `activate_dependencies'
	 6: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `each'
	 5: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1406:in `block in activate_dependencies'
	 4: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1370:in `activate'
	 3: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `activate_dependencies'
	 2: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `each'
	 1: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1400:in `block in activate_dependencies'
/usr/lib/ruby/vendor_ruby/rubygems/dependency.rb:309:in `to_specs': Could not find 'nokogiri' (~> 1.10.9) - did find: [nokogiri-1.11.1] (Gem::MissingSpecVersionError)
Checked in 'GEM_PATH=/root/.gem/ruby/2.7.0:/var/lib/gems/2.7.0:/usr/local/lib/ruby/gems/2.7.0:/usr/lib/ruby/gems/2.7.0:/usr/lib/x86_64-linux-gnu/ruby/gems/2.7.0:/usr/share/rubygems-integration/2.7.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.7.0' , execute `gem env` for more information
	12: from /usr/bin/wpscan:23:in `<main>'
	11: from /usr/lib/ruby/vendor_ruby/rubygems.rb:301:in `activate_bin_path'
	10: from /usr/lib/ruby/vendor_ruby/rubygems.rb:301:in `synchronize'
	 9: from /usr/lib/ruby/vendor_ruby/rubygems.rb:302:in `block in activate_bin_path'
	 8: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1370:in `activate'
	 7: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `activate_dependencies'
	 6: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `each'
	 5: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1406:in `block in activate_dependencies'
	 4: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1370:in `activate'
	 3: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `activate_dependencies'
	 2: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1388:in `each'
	 1: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1399:in `block in activate_dependencies'
/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1402:in `rescue in block in activate_dependencies': Could not find 'nokogiri' (~> 1.10.9) among 102 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/root/.gem/ruby/2.7.0:/var/lib/gems/2.7.0:/usr/local/lib/ruby/gems/2.7.0:/usr/lib/ruby/gems/2.7.0:/usr/lib/x86_64-linux-gnu/ruby/gems/2.7.0:/usr/share/rubygems-integration/2.7.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.7.0' at: /usr/share/rubygems-integration/all/specifications/cms_scanner-0.13.0.gemspec, execute `gem env` for more information

В сообщении ключевой строкой является «Could not find 'nokogiri' (~> 1.10.9)». То есть не получается найти nokogiri.

Попробуем исправить проблему переустановкой этого пакета.

Удалим его:

gem uninstall nokogiri

Если предыдущая команда спросит, какую версию удалить, то выберите «все». Если nokogiri не будет найден и появится ошибка, то ничего страшного.

После удаления устанавливаем:

gem install nokogiri

К сожалению, это мне не помогло.

Я воспользовался другим советом:

gem update --system
xcode-select --install
gem install nokogiri
bundle install

Причём последняя команда не хотела выполнятся, так как рассматриваемая проблема возникла на сервере, где я работал под пользователем root. Проблему удалось решить, подробности в статье «Как запустить bundle install от root». Но, к сожалению, это мне также не помогло.

При установке nokogiri я обратил внимание, что устанавливается версия 1.11.1, а в сообщении сказано «Could not find 'nokogiri' (~> 1.10.9)», то есть больше версии 1.10.9. Вроде бы как, условия соблюдены, но я решил проверить, поможет ли установка версии 1.10.9. Для этого я выполнил команду:

gem install nokogiri -v 1.10.9

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

Связанная статья: Как установить конкретную версию Ruby gem?

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *