Ne peut pas exécuter "rails console" à cause d'une erreur avec readline
Je ne peux pas exécuter rails console
en raison de cette erreur:
localhost:TwitterForZombies wiz$ rails c
/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `require': dlopen(/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib (LoadError)
Referenced from: /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
Reason: image not found - /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `require'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `<top (required)>'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `require'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
j'ai installé readline via homebrew. J'aimerais continuer à utiliser rbenv au lieu de rvm.
Merci d'avoir lu ma question.
8 réponses
j'ai eu le même problème récemment avec homebrew et libreadline.7.x.dylib / libreadline.6.x.dylib
Je l'ai résolu en exécutant:
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
Homebrew est grand, mais de temps en temps il ne joue pas gentil avec certains des autres éléments mobiles.
A brew update && brew upgrade
introduit libreadline.7.x.dylib
tout en supprimant automatiquement libreadline.6.x.dylib
, sur lequel ruby comptait toujours.
il y a peut-être des façons plus intelligentes de résoudre le problème, mais la force brute a fonctionné pour moi:
$ rbenv uninstall 2.3.1
$ rbenv install 2.3.1
$ cd /path/to/my/app
$ bundle
ce qui précède suppose la présence de ruby-build
de rbenv et, bien sûr, bundler
; remplacez 2.3.1
par la version de ruby que vous utilisez.
Veuillez noter que des problèmes similaires peuvent se produire avec différents homebrew bibliothèques gérées ( voir ma propre réponse à cette question, par exemple )
j'ai eu la même erreur avec Ruby 2.1.0, et rails 4.0. Après avoir cherché et essayé beaucoup, finalement il fonctionne bien:) voici ce que j'ai fait:
rvm cleanup all
rvm autolibs enable
rvm install 2.1.0
Les autres moyens:
brew update
brew uninstall readline
brew install readline
la commande autolibs va forcer RVM à installer toutes les dépendances, vous n'avez donc pas besoin de vous en inquiéter.
J'espère que c'est utile.
comme L'a laissé entendre Sachin, installer readline puis réinstaller ruby est l'approche idéale - mais les détails sont un peu différents pour rbenv. Compte tenu de vos chemins de fichier, je suppose que vous êtes sur un Mac, donc ce qui suit devrait aider:
brew install readline ruby-build
env CONFIGURE_OPTS=--with-readline-dir=`brew --prefix readline` rbenv install 1.9.3-p286
cela a été pris de le Wiki ruby-build et une recherche rapide de google.
je suis sur OSX, ruby2.3.0, rails5. L'ajout de gem 'rb-readline'
à mon Gemfile
a corrigé ce problème.
en utilisant mac, El Captain
version, il est possible de corriger juste en faisant
rvm reinstall your_ruby_version
(comme rvm reinstall ruby-2.3.1
)
espérons que cela aide, bonne chance!
extrait de @enderahmetyurt, utilisateur de github (c'est la seule solution qui a fonctionné pour moi).
Solution: Ajouter gem 'rb-readline'
à votre Gemfile dans groupe de développement et bundle install .
c'est la solution la plus simple pour les erreurs idiotes de "readline".