Frage Die Rails-Konsole wird aufgrund der Libreadline nicht geladen


Ich habe kürzlich Ruby 2.1.2 so neu installiert, da ich einen Edelstein installieren wollte (ruby-debug-ide)

sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2

Seitdem kann ich meine Konsole nicht mit laden bundle exec rails c aufgrund des folgenden Fehlers:

/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

Versucht brew uninstall readline und brew install --build-from-source readline was funktioniert hat, aber mein Problem nicht gelöst hat.


51
2017-08-31 11:29


Ursprung


Antworten:


Habe heute darüber gestolpert, um es zu lösen:

brew rm -f readline

brew install readline

brew link readline --force

Ich hoffe es hilft.


51
2017-09-12 13:58



Ich war in der Lage, das gleiche Problem durch Neuinstallation von Ruby zu lösen. Auf der Homebrew-Seite half das erneute Installieren von readline (sogar von der Quelle) nicht.

Ich verwende RVM, also sortierte es das für mich:

rvm reinstall 2.3.1

Ich denke, Homebrew hat vielleicht in letzter Zeit v7 für ein anderes Paket gelesen, von dem ich vermute, dass es der Schuldige sein könnte.


40
2017-10-01 22:04



Basierend auf einem Kommentar zu der akzeptierten Antwort mit mehr Ups als die Antwort, scheint dies die beliebteste Lösung zu sein.

Sieht so aus, als ob Schienen 4.2.6 gesucht hätten libreadline.6 Anstatt von libreadline. Also muss nur ein Symlink erstellt werden.

ln -s /usr/local/opt/readline/lib/libreadline.dylib \
/usr/local/opt/readline/lib/libreadline.6.dylib 

Hoffe das hilft anderen, die immer noch feststecken!


39
2017-12-29 20:18



Hinzufügen gem 'rb-readline' zu meinem Gemfile behebt dieses Problem für mich. Sehen https://github.com/ConnorAtherton/rb-readline.


9
2018-01-02 21:22



Nachdem ich eine Menge positives Feedback zu meinem Kommentar zu @ mauro_otos Beitrag erhalten hatte, dachte ich, ich würde dies als Antwort posten:

Für mich cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib Hat den Trick gemacht. Sieht so aus, als ob Schienen 4.2.6 nach Libreadline.6 anstatt nach Libreadline gesucht hat. Ich hätte es wahrscheinlich auch symbolisch verlinken sollen, um ehrlich zu sein. Damit ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib ist angemessener. hoffe, das hilft anderen, die noch feststecken!


9
2018-03-12 16:16



Nichts davon funktionierte für mich. Ich benutze Osx Sierra. Das hat für mich funktioniert.

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib

Hoffe, das hilft jemandem da draußen.


9
2018-02-17 09:30



Mein ENV: Ruby: 2.2.1, Rails: 4.2.1, macOS Sierra 10.12.4;

Der folgende Befehl funktioniert für mich und meinen Kollegen:

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib


5
2018-01-30 21:20



Unter OSX mit Homebrew können Sie angeben, welche Readline-Version aktiv ist. z.B.

brew switch readline 6.3.8

(Es ist wahrscheinlich in installiert /usr/local/Cellar/readline/ )


0