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.

80
demandé sur iHiD 2013-05-26 08:41:29

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

source: https://github.com/rails/rails/issues/26658

274
répondu wmmc 2016-11-14 14:25:14

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 )

51
répondu Giuseppe 2017-05-23 11:55:11

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.

21
répondu Hoa Hoang 2014-05-27 14:56:11

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.

20
répondu pat 2013-05-27 14:37:37

je suis sur OSX, ruby2.3.0, rails5. L'ajout de gem 'rb-readline' à mon Gemfile a corrigé ce problème.

20
répondu Meekohi 2016-12-29 20:16:50

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!

5
répondu violentr 2016-11-14 14:24:32

essayez d'installer readline, et réinstallez votre ruby

https://rvm.io/packages/readline /

0
répondu Sachin Singh 2013-05-26 07:26:13

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".

0
répondu whataboutme1 2017-07-07 04:29:33