Wenn ich versuche zu laufen, rails console
erhalte ich folgende Fehlermeldung:
/Users/TuzsNewMacBook/.rvm/gems/ruby-2.3.7/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require':
dlopen(/Users/TuzsNewMacBook/.rvm/rubies/ruby-2.3.7/lib/ruby/2.3.0/x86_64-darwin18/readline.bundle, 9):
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
Eine schnelle Suche brachte mich zu diesem Beitrag und ich habe ein paar Dinge ausprobiert:
brew reinstall postgresql
(Dies ist in der Tat die DB für dieses Projekt)
und
cd /usr/local/opt/readline/lib
ln libreadline.8.0.dylib libreadline.6.2.dylib
(Meine Version von Readline ist 8)
und
brew link readline --force
Aber keines davon hat es behoben.
Ich habe kürzlich hinzugefügt und Edelsteine zu meinem Projekt hinzugefügt pry-coolline
, wenn dies einen Unterschied macht (die Schienenkonsole wurde zuvor gut geladen). Ich laufe auf den neuesten Macos.guard
guard-livereload
(Update) Ich verwende Hebelschienen als Schienenkonsole, wenn das einen Unterschied macht.
Irgendeine Hilfe? Vielen Dank.
ruby-on-rails
libreadline
Jonathan Tuzman
quelle
quelle
brew reinstall readline
Antworten:
Der Fehler scheint bei der Suche ausgelöst zu werden
/usr/local/opt/readline/lib/libreadline.7.dylib
.Haben Sie versucht, das zu verknüpfen?
Also so etwas wie:
Habe das gerade unter macOS Mojave, Ruby 2.5.3p105 und Rails 5.2.2 versucht und funktioniert.
quelle
ln
sind keine Dinge, über die ich eigentlich etwas weiß: /cd /usr/local/opt/readline/lib
brew link readline --force
die Links in erstellen/usr/local/opt/readline/lib
.brew link readline --force
von Candland, das für mich funktioniert hatDie Neuinstallation meiner Ruby-Version scheint das Problem behoben zu haben:
quelle
rbenv install 2.5.1
habe in meinem Kontext für mich gearbeitet. Dies ging seitwärts, nachdem ich gelaufen warsudo xcode-select -s /Library/Developer/CommandLineTools
, um ein Problem zu beheben, das ich anderswo hatte. fwiwbundle install
die Edelsteine mit nativen Erweiterungen neu installieren.kannst du es versuchen
Sie sind auf dem richtigen Weg, aber es scheint, als ob Rails nach libreadline.7.dylib sucht und libreadline.7.dylib nicht im Ordner enthalten ist.
quelle
Ja, die beste Antwort ist eine Neuinstallation.
Sie können die Version einfach erhalten, indem Sie Folgendes eingeben:
Mit
rbenv
lautet der Befehl dh:mit
rvm
:quelle
rbenv install <ruby-version>
mit "Rake" aufgrund von Rake-Konflikten mit der installierten ausführbaren Datei aufgrund eines Redis-Rack- Konflikts fehlgeschlagen . Ich musste rennenrbenv uninstall <ruby-version> && rbenv install <ruby-version>
Eine sehr einfache Lösung, bei der Sie Ihre RVM-Gemset- oder Sym-Link-Bibliotheken nicht neu erstellen müssen.
Zu deiner Gemfile hinzufügen:
Wenn Sie Bündlergruppen durchführen
Dann renne
Lassen Sie mich wissen, wenn das nicht funktioniert.
quelle
In Ruby-Anwendungen wird dies am häufigsten durch Edelsteine mit Erweiterungen (die Edelsteine sagen "Native Erweiterungen erstellen ...") verursacht, die in diesem Fall mit einer bestimmten Version von erstellt wurden.
readline
.Grundsätzlich gibt es zwei Lösungen:
Sie können auch Version 8 des Edelsteins mit der fehlenden Version verknüpfen. Dies funktioniert in vielen Fällen, aber wenn die Abwärtskompatibilität unterbrochen ist, ist dies nicht der Fall.
Wenn der Edelstein tatsächlich Version 8 unterstützt, können Sie diesen bestimmten Edelstein neu installieren oder ihn durch Ausführen "makellos" machen
gem pristine --all
.BEARBEITEN : Im Rahmen Ihres "Was ich versucht habe" ist die Neuinstallation von PostgreSQL auch eine der Binärdateien, die mit einer bestimmten Version erstellt wurden, für die möglicherweise auch eine Neuerstellung erforderlich ist, um mit einer Systembibliothek wie readline zu arbeiten.
quelle
Habe dieses Problem:
tun...
hat den Trick für mich für macOS Catalina gemacht
quelle
Also habe ich hier ein paar Antworten überprüft, aber ich glaube nicht, dass sie mit einer Vanilla Mojave Mac-Installation funktionieren können. Ich benutze 10.14.4, während ich diese gemacht habe:
Holen Sie sich Homebrew von https://brew.sh
$ brew install coreutils
: dies installiert das gnu coreutils pkg für mac, wir wollen dasgreadlink
davon, weil der readlink von macOSX nicht der gleiche ist wie der gnu readlink. Es ist äußerst verwirrend, aber so ist das Leben in Macland.$ echo 'alias readlink=greadlink' >> ~/.bash_aliases
Ich habe festgestellt, dass der Mac-Readlink etwas fehlt, daher habe ich den vorhandenen Readlink durch Aliasing von Greadlink überschrieben. (Sie können dies für alle Benutzer nutzbar machen,$ alias readlink=greadlink >> /etc/bashrc
wodurch jeder Benutzer es verwenden kann.$ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Ich habe die bereits verknüpfte.8.
Datei anstelle von '.8.0' verknüpft. Datei, denn wenn es aktualisiert werden sollte,.8.1.
wird mein Readlink die Funktionen in der Bibliothek nicht beschädigen oder verpassen. Ich bin mir ziemlich sicher, dass wir unsere Macs formatieren werden, bevor 9+ herauskommt.quelle
Ich würde empfehlen, native Bibliotheken nicht manuell zu verknüpfen. Unter OS X 10.4 wird der Standardpfad für die Include-Bibliothek
/usr/include
nicht mehr verwendet und ist von SIP gesperrt (was das Verschieben erschwert).Apple liefert ein "Legacy-Installationsprogramm" aus, damit Sie die Header am "alten Speicherort" installieren können. Dadurch wird auch Ihr Pfad aufgelöst, um die über installierten Header korrekt zu finden
brew
.Hier finden Sie eine detaillierte Beschreibung der Vorgänge .
quelle
libreadline.8.dylib
,libreadline.7.dylib
die fehlte. dh Befehl ausführen:ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Mein Problem war beim Laufen genauso
lftp
.Nur das Laufen
brew upgrade
hat mein Problem gelöst, da es (unter anderem) aktualisiert wurde:quelle
Hintergrund: Dies ist passiert, als ich versucht habe, tig zu installieren, aber ich denke, dies ist ein häufiges Problem, das Sie möglicherweise haben, wenn Sie die installierte Software manuell mit dem richtigen Pfad verknüpfen müssen, den eine andere Software wünscht.
Wenn Sie auf Ihrem Mac keine installierte Readline finden, sollten Sie diese ausführen
Nachdem Sie Deadline installiert haben, werden Sie von Brew aufgefordert, diese zu verlinken. Aber eigentlich kann man nicht durch Laufen verlinken
Auch Sie können nicht durch Laufen verlinken
Mac OS warnt Sie, dass dies äußerst gefährlich ist, und hindert Sie daran.
Die neueste Version von readline ist Version 8, daher wird die Fehlermeldung wie folgt angezeigt
Das Gebräu installiert Frist um
Sie müssen es also manuell mit dem Befehl ls mit dem Ort verknüpfen, den Ihre Software haben möchte
Genießen!
quelle