Rails Load Error - несовместимая версия библиотеки для bcrypt - PullRequest
0 голосов
/ 10 июня 2019

Мои rails s и rails c неожиданно начали отказываться загружаться с ошибкой ниже.Я не помню обновления или удаления каких-либо драгоценных камней.Мы будем благодарны за любую помощь в исправлении ситуации.

incompatible library version - /Users/[me]/projects/[app]/vendor/bundle/ruby/2.6.0/gems/bcrypt-3.1.12/lib/bcrypt_ext.bundle (LoadError)

bcrypt не является обязательным драгоценным камнем в нашем проекте, но он включен в Gemfile.lock, потому что это зависимость:bcrypt (3.1.12)

До сих пор я пробовал это, но я получаю ту же ошибку:

  1. Удаление и установка bcrypt в моей системе (согласно этому предложению )
gem uninstall bcrypt -v 3.1.12

You have requested to uninstall the gem:
        bcrypt-3.1.12

sorcery-0.14.0 depends on bcrypt (~> 3.1)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]  y
Successfully uninstalled bcrypt-3.1.12
gem install bcrypt -v 3.1.12
Successfully installed bcrypt-3.1.12
gem pristine --all

Вот результаты, которые я получу, если проверю версии драгоценных камней:

  1. gem info bcrypt
*** LOCAL GEMS ***
bcrypt (3.1.12)
    Author: Coda Hale
    Homepage: https://github.com/codahale/bcrypt-ruby
    License: MIT
    Installed at: /Users/[me]/.rvm/gems/ruby-2.6.2

    OpenBSD's bcrypt() password hashing algorithm.
bundle info bcrypt
* bcrypt (3.1.12)
        Summary: OpenBSD's bcrypt() password hashing algorithm.
        Homepage: https://github.com/codahale/bcrypt-ruby
        Path: /Users/[me]/projects/[app]/vendor/bundle/ruby/2.6.0/gems/bcrypt-3.1.12

1 Ответ

1 голос
/ 10 июня 2019

[РЕШЕНО]

[Решение 1] Мне нужно было удалить / переустановить гем в папке vendor/bundle вместо того, чтобы возиться с gem uninstallи gem install.Я подозревал это, потому что драгоценные камни в моей системе должны быть не связаны с драгоценными камнями, которые я использовал с упаковщиком.

Здесь были сделаны следующие шаги:

  1. Проверьте, где вашGem сохраняется с помощью otool -L (мой был сохранен здесь: [project root]/vendor/bundle/ruby/2.6.0/gems/bcrypt-3.1.12/lib/bcrypt_ext.bundle)

  2. Удалите все в папке bcrypt-3.1.12 с помощью rm -rf.

  3. bundle install --force --path vendor/bundle для переустановки драгоценного камня bcrypt-3.1.12.

[Решение 2] В конечном итоге я обновил bcrypt 'версия с bundle update bcrypt.Предполагая, что это обновление установило гем в vendor/bundle, потому что все мои rails команды снова заработали.

bundle update bcrypt
Using bcrypt 3.1.13 (was 3.1.12)

Надеюсь, что эти советы помогут любому, кто столкнется с этим в будущем!

...