Question la console de rails ne se charge pas à cause de libreadline


J'ai récemment réinstallé Ruby 2.1.2 comme si je voulais installer une gem (ruby-debug-ide)

sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2

Depuis lors, je ne peux pas charger ma console en utilisant bundle exec rails c en raison de l'erreur suivante:

/Users/ohad/.rvm/gems/ruby-2.1.2@aaa/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle, 9): Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib (LoadError)
  Referenced from: /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle

A essayé brew uninstall readline et brew install --build-from-source readline qui a fonctionné mais n'a pas résolu mon problème.


51
2017-08-31 11:29


origine


Réponses:


Ran à travers cela aujourd'hui, pour le résoudre j'ai fait:

brew rm -f readline

brew install readline

brew link readline --force

J'espère que cela aide.


51
2017-09-12 13:58



J'ai pu résoudre le même problème en réinstallant Ruby. Sur le côté Homebrew, la réinstallation de readline (même de source) n'a pas aidé.

J'utilise RVM donc cela a trié pour moi:

rvm reinstall 2.3.1

Je pense que Homebrew a pu lire readline v7 récemment pour un autre package, dont je pense que ce pourrait être le coupable.


40
2017-10-01 22:04



Basé sur un commentaire sur la réponse acceptée avec plus de votes positifs que la réponse, cela semble être la solution la plus populaire.

On dirait que les rails 4.2.6 recherchaient libreadline.6 au lieu de libreadline. Il suffit donc de créer un lien symbolique.

ln -s /usr/local/opt/readline/lib/libreadline.dylib \
/usr/local/opt/readline/lib/libreadline.6.dylib 

J'espère que cela aidera les autres qui sont toujours bloqués!


39
2017-12-29 20:18



Ajouter gem 'rb-readline' à mon Gemfile résolu ce problème pour moi. Voir https://github.com/ConnorAtherton/rb-readline.


9
2018-01-02 21:22



Après avoir reçu beaucoup de commentaires positifs sur mon commentaire sur le post de @mauro_oto, je pensais que je posterais ceci comme une réponse:

Pour moi cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib fait le tour On dirait que rails 4.2.6 recherchait libreadline.6 au lieu de libreadline. J'aurais probablement dû créer un lien symbolique pour être honnête. Alors ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib est plus approprié. J'espère que cela aidera les autres qui sont encore bloqués!


9
2018-03-12 16:16



Rien de tout cela n'a fonctionné pour moi. J'utilise osx sierra. C'est ce qui a fonctionné pour moi.

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib

J'espère que cela aide quelqu'un là-bas.


9
2018-02-17 09:30



Mon ENV: Ruby: 2.2.1, Rails: 4.2.1, macOS Sierra 10.12.4;

La commande ci-dessous fonctionne pour moi et mon collègue:

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib


5
2018-01-30 21:20