Ich kann rails console
aufgrund dieses Fehlers nicht ausführen :
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>'
Ich habe readline via homebrew installiert. Ich würde gerne weiterhin rbenv anstelle von rvm verwenden.
Vielen Dank für das Lesen meiner Frage.
Antworten:
Ich hatte kürzlich das gleiche Problem mit Homebrew und libreadline.7.x.dylib / libreadline.6.x.dylib
Ich habe es gelöst, indem ich ausgeführt habe:
Quelle: https://github.com/rails/rails/issues/26658
quelle
Homebrew ist großartig, aber hin und wieder spielt es sich nicht gut mit einigen anderen beweglichen Teilen.
Ein
brew update && brew upgrade
eingebrachtelibreadline.7.x.dylib
beim automatischen Entfernenlibreadline.6.x.dylib
, auf den sich Rubin noch stützte.Es gibt vielleicht klügere Möglichkeiten, das Problem zu beheben, aber Brute Force hat bei mir funktioniert:
Das Obige setzt das Vorhandensein von rbenvs
ruby-build
und natürlich vorausbundler
; Ersetzen Sie sie2.3.1
durch eine beliebige Version von Ruby.Bitte beachten Sie, dass ähnliche Probleme bei verschiedenen von Homebrew verwalteten Bibliotheken auftreten können ( siehe beispielsweise meine eigene Antwort darauf ).
quelle
gem install bundler
Installation nach der Rbenv.brew update && brew upgrade
erneut starte?brew upgrade
ältere Bibliothek durch eine neuere Version ersetzt wird, besteht die Möglichkeit, dass sich andere Programme in Ihrem System beschweren.Ich bin auf OSX, Ruby2.3.0, Rails5. Durch Hinzufügen
gem 'rb-readline'
zu meinem wurdeGemfile
dieses Problem behoben.quelle
Ich habe den gleichen Fehler mit Ruby 2.1.0 und Rails 4.0 erhalten. Nachdem ich viel gesucht und versucht habe, funktioniert es endlich gut :) Hier ist was ich getan habe:
Die anderen Möglichkeiten:
Der Befehl autolibs erzwingt, dass RVM alle Abhängigkeiten installiert, sodass Sie sich darüber keine Gedanken machen müssen.
Hoffe es ist hilfreich.
quelle
cleanup rvm
. nurreinstall
die rubinversion.Wie Sachin angedeutet hat, ist die Installation von readline und die anschließende Neuinstallation von Ruby der ideale Ansatz - aber die Details sind für rbenv etwas anders. Angesichts Ihrer Dateipfade schätze ich, dass Sie sich auf einem Mac befinden. Folgendes sollte also helfen:
Dies wurde aus dem Ruby-Build-Wiki und einer schnellen Google-Suche übernommen.
quelle
bundle install
zeigte mir das Ausführen eines Befehls wie z. B. viele Warnungen wie "Ignorieren von bcrypt-3.1.11, da seine Erweiterungen nicht erstellt wurden". Wie in den Antworten auf diese Frage vorgeschlagen , wurdengem pristine --all
alle diese Fehler auf einmal behoben.Mit Mac,
El Captain
Version, ist es möglich, nur durch Ausführen zu beheben(wie
rvm reinstall ruby-2.3.1
)Hoffe das hilft, viel Glück!
quelle
rvm reinstall $(rvm current)
entnommen von github user @enderahmetyurt (dies ist die einzige Lösung, die für mich funktioniert hat).
Lösung: Fügen Sie
gem 'rb-readline'
Ihrer Gemfile in der Entwicklungsgruppe hinzu und installieren Sie das Bundle .Es ist die einfachste Lösung für dumme "Readline" -Fehler.
quelle
quelle