J'ai récemment réinstallé Ruby 2.1.2 comme ça depuis que je voulais installer une gemme (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 tenté brew uninstall readline
et brew install --build-from-source readline
qui a fonctionné mais n'a pas résolu mon problème.
J'ai parcouru 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 ça aide.
EDIT: J'ai récemment rencontré ce problème à nouveau (après avoir rétrogradé Ruby) depuis que j'ai écrit cela, et je préfère maintenant la solution de @ califrench dans les commentaires ci-dessous:
ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Sur la base d'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.
Ressemble à Rails 4.2.6 cherchait 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 aide les autres qui sont toujours coincés!
J'ai pu résoudre le même problème en réinstallant Ruby. Du côté de Homebrew, la réinstallation de readline (même à partir de la source) n'a pas aidé.
J'utilise RVM, donc cela m'a arrangé:
rvm reinstall 2.3.1
Je pense que Homebrew a peut-être récemment ajouté Readline v7 pour un autre package, dont je soupçonne qu'il pourrait bien être le coupable.
Après avoir reçu beaucoup de commentaires positifs sur mon commentaire sur le post de @ mauro_oto, j'ai pensé publier ceci comme réponse:
Pour moi
cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
a fait l'affaire. On dirait que Rails 4.2.6 cherchait libreadline.6 au lieu de libreadline. J'aurais probablement dû le mettre en 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 toujours coincés!
Ajouter gem 'rb-readline'
à mon Gemfile
a résolu ce problème pour moi. Voir https://github.com/ConnorAtherton/rb-readline .
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.
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
Sur OSX utilisant homebrew, vous pouvez spécifier quelle version de la ligne de lecture est active. par exemple.
brew switch readline 6.3.8
(il est probablement installé dans /usr/local/Cellar/readline/
)
Cela a résolu mon problème:
Remplacez libreadline. {Version} .dylib par la version pour laquelle vous obtenez une erreur:
ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Je rencontrais un problème similaire mais avec des versions plus mises à jour. L'erreur que j'ai eue était:
dlopen(/Users/juanjo/.rvm/rubies/Ruby-2.5.3/lib/Ruby/2.5.0/x86_64-darwin18/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
Referenced from: /Users/juanjo/.rvm/rubies/Ruby-2.5.3/lib/Ruby/2.5.0/x86_64-darwin18/readline.bundle
Reason: image not found - /Users/juanjo/.rvm/rubies/Ruby-2.5.3/lib/Ruby/2.5.0/x86_64-darwin18/readline.bundle
La partie importante est Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
Regarder /usr/local/opt/readline/lib/
J'ai vu que j'avais installé libreadline.8.dylib
, pas 7.
Pour résoudre mon problème, guidé par les autres réponses, j'ai dû 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]
.