console rails ne se charge pas en raison de libreadline
J'ai récemment réinstallé ruby 2.1.2 comme si depuis que j'ai voulu installer un gem (ruby-debug-ide
)
sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2
Depuis, je ne peux pas charger ma console à l'aide de 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
Essayé brew uninstall readline
et brew install --build-from-source readline
qui a travaillé mais n'a pas résolu mon problème.
- Double Possible de Console Rails Pas de Chargement
Vous devez vous connecter pour publier un commentaire.
Couru à travers ce aujourd'hui, pour le résoudre j'ai fait:
brew rm -f readline
brew install readline
brew link readline --force
Espère que cela aide.
EDIT: j'ai récemment rencontré ce problème à nouveau (après déclassement Ruby) depuis que j'ai écrit cela, et maintenant, je préfère @califrench de la solution à partir des commentaires ci-dessous:
ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
brew doctor
il me dit de dissocier elle? Je pense que c'est ce qui a causé l'erreur de venir en premier lieu, étrange..cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
a fait le tour. Regarde comme des rails 4.2.6 était à la recherche pourlibreadline.6
au lieu delibreadline
. Je devrais probablement avoir un lien symbolique pour être honnête. Doncln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
est plus approprié. espérons que cela aide les autres qui sont encore coincés!rails c
a été brisé après la mise à niveau de la Sierra.rails console
aprèsspring stop
Ressemble rails 4.2.6 était à la recherche pour
libreadline.6
au lieu delibreadline
. Donc juste besoin de créer un lien symbolique.Espère que cela aide les autres qui sont encore coincés!
...libreadline.6.dylib
à...libreadline.7.dylib
J'ai été en mesure de résoudre le même problème en réinstallant Ruby.
Sur le Homebrew côté de la réinstallation readline (même à partir de la source) n'a pas aidé.
Je suis en utilisant RVM donc cette triés pour moi:
rvm reinstall 2.3.1
Je pense Homebrew peut avoir tiré dans readline v7 récemment pour un autre paquet, ce qui je pense pourrait bien être le coupable.
rbenv install -f 2.3.1
.Ajoutant
gem 'rb-readline'
à monGemfile
résolu ce problème pour moi. Voir https://github.com/ConnorAtherton/rb-readline.Après l'obtention de beaucoup de commentaires positifs sur mon commentaire sur @mauro_oto post, je pensais que je poste cela comme une réponse:
Rien de tout cela a fonctionné pour moi. J'utilise osx sierra. Ce ce qui a fonctionné pour moi.
Espère que cela aide quelqu'un là-bas.
Mon ENV: Ruby: 2.2.1, des Rails: 4.2.1, macOS Sierra 10.12.4;
La commande ci-dessous qui 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
Cela a résolu mon problème:
Remplacer libreadline.{version}.dylib avec la version que vous obtenez l'erreur pour:
Sur OSX à l'aide de homebrew, vous pouvez spécifier les readline version est active. par exemple,
brew switch readline 6.3.8
(c'est probablement installés dans
/usr/local/Cellar/readline/
)J'ai été confronté à un problème similaire mais avec plus de versions mises à jour. L'erreur que j'ai eu a été:
L'important, c'est
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
Regardant
/usr/local/opt/readline/lib/
j'ai vu que j'avais installélibreadline.8.dylib
, pas 7.À résoudre mon problème, guidée par les autres réponses, j'ai eu à faire ce qui suit:
ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
En d'autres termes:
ln -s /.../[libreadline you have] /.../[libreadline you need]
.