LoadError: невозможно загрузить такой файл - bcrypt_ext на сервере Windows 2008 x64

Я обновил свою среду с Ruby 2.0.0 до 2.2.3.

Я также обновил (перезаписать) DevKit и перезапустил ruby ​​dk.rb install.

Я удалил Gemfile.lock и выполнил установку пакета, чтобы начать с совершенно новой среды. Все выглядит нормально, но я получаю сообщение об ошибке:

E:\Projects\development\Stairs>rake db:migrate 
rake aborted!
LoadError: cannot load such file -- bcrypt_ext
E:/Projects/development/Stairs/config/application.rb:7:in `<top (required)>'
E:/Projects/development/Stairs/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- 2.2/bcrypt_ext
E:/Projects/development/Stairs/config/application.rb:7:in `<top (required)>'
E:/Projects/development/Stairs/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

У меня была первая проблема с Nokogiri, которую я решил использовать с этим решением: Ошибка загрузки Nokogiri используя решение Juloi Elixir и установив Nokogiri из локальной копии.

Но я не чувствую, что делаю этот драгоценный камень foreach! Похоже, рубин ищет камень, используя путь./или./2.2, в то время как драгоценные камни хранятся в пути. /2.2.0. Это настраивается? Как я могу решить эту проблему?

Note: Gemfile contains gem 'bcrypt', '~> 3.1.10'

Спасибо!

Ответ 1

Решение было здесь: bcrypt-ruby @github:

Восстановите локально жемчужину bcrypt:

  • Перейдите в каталог gem\Ruby22-x64\lib\ruby ​​\ gems\2.2.0\gems\bcrypt-3.1.10-x64-mingw32\ext\mri >
  • Запустить ruby ​​extconf.rb
  • Запустить make
  • Запустить make install

Обратите внимание, что это работает, только если ваша среда DevKit настроена правильно (запустите devkitvars.bat).

Ответ 2

Я потратил целый час на это, только сейчас.

Хорошо, что я сделал, я последовал за некоторыми советами в Интернете, чтобы сделать

gem install bcrypt --platform=ruby

И затем он работал в irb.

irb(main):001:0> require 'bcrypt'
=> true

Позже, когда мне нужно было установить пакет, по какой-то нечетной причине рельсы установили другой bcrypt, и ошибка вернулась. Таким образом, у меня было две папки в моем корневом камне.

bcrypt-3.1.10
bcrypt-3.1.10-x64-mingw32

Итак, поскольку первая папка была создана с помощью devkit, и она работает. Я удалил содержимое второй папки и скопировал содержимое первого в нее.

Кажется, я работаю, когда пишу это.

Ответ 3

@user1185081 решение работало для меня на машине с Windows. Я выполнил следующие команды и работал как магия:

$ cd C:\RailsInstaller\Ruby2.2.0\lib\ruby\gems\2.2.0\gems\bcrypt-3.1.10-x86-mingw32\ext\mri  
$ ruby extconf.rb
$ C:\<DevKit Path>\devkitvars.bat  (assuming you have devkit installed)(Ran this instead of running "make" because it was not recognized as an internal or external command)
$ make install

Ответ 4

Что работало для меня в Windows 7:

  • gem uninstall bcrypt, чтобы удалить все версии bcrypt, включая те, которые указаны как зависимости
  • gem install bcrypt для переустановки
  • bundle install

Ответ 5

Вот решение для меня:

    C:\> gem uninstall brcypt
    C:\> gem install --no-ri --no-rdoc bcrypt
    C:\> cd (path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri
    C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> ruby extconf.rb
    C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> make
    C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> make install

Ответ 6

В моем случае указание старой версии bcrypt в Gemfile было причиной ошибки. Я удалил обозначение версии и запустил bundle update bcrypt, затем он был установлен.

Ответ 7

Проблема, по-видимому, решена в bcrypt 3.1.11. Следующая процедура работала для меня в Windows 10:

$ bundle update bcrypt
...

проверка версии:

$ bundle install | grep bcrypt
Using bcrypt 3.1.11

После этого миграция прошла успешно:

$ bundle exec rake db:migrate RAILS_ENV=development
== 20160211102316 AddAdminUserIfEmptyTable: migrating =========================
== 20160211102316 AddAdminUserIfEmptyTable: migrated (0.1244s) ================

== 20160212135435 CreatePersistentHashes: migrating ===========================
-- create_table(:persistent_hashes)
   -> 0.0013s
== 20160212135435 CreatePersistentHashes: migrated (0.0059s) ==================

Проблема решена.

Ответ 8

Этот процесс предназначен для окон:

Проблема с программами, установленными в системе.

Удалите все программы рельсов:

  • Все программы Ruby.

  • RailsInstaller.

Удаляет все файлы, которые были удалены, вы должны сделать это вручную внутри:

C:\RailsInstaller

  1. Установить версию ruby ​​версии 2.2:

http://railsinstaller.org/en

Подождите, и он уже пойдет.

MarlonJon.es

Ответ 9

Это работает для меня, добавьте это в свой файл gems:

gem 'bcrypt', '~> 3.1.7', platform: :ruby

Ответ 10

У меня была та же проблема:

не может загрузить такой файл - bcrypt_ext


Windows 8.1 64bit

ruby ​​2.3.3p222 (версия 2016-11-21 56859) [i386-mingw32]

Rails 5.1.4


Мое решение:

  • gem удалить bcrypt-ruby
  • gem удалить bcrypt
  • gem install bcrypt -platform = ruby ​​
  • добавлена ​​вся эта строка в Gemfile:

gem 'bcrypt', git: 'https://github.com/codahale/bcrypt-ruby.git',: require = > 'bcrypt'

  1. установить пакет