Als ik rails console
probeer te gebruiken, krijg ik deze foutmelding:
/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)
Een snelle zoekopdracht bracht me bij dit berichten ik heb een paar dingen geprobeerd:
brew reinstall postgresql
(dit is inderdaad de DB voor dit project)
en
cd /usr/local/opt/readline/lib
ln libreadline.8.0.dylib libreadline.6.2.dylib
(mijn versie van leesregel is 8)
en
brew link readline --force
Maar geen van deze heeft het opgelost.
Ik heb onlangs pry-coolline
, guard
en guard-livereload
edelstenen aan mijn project toegevoegd als dat enig verschil maakt (rails console geladen prima daarvoor). Ik draai op de nieuwste macos.
(Update) Ik gebruik koevoetrails als mijn railsconsole, als dat enig verschil maakt.
Heeft u hulp? Bedankt.
Antwoord 1, autoriteit 100%
de fout lijkt op te treden bij het zoeken naar /usr/local/opt/readline/lib/libreadline.7.dylib
.
Heb je geprobeerd dat te symboliseren?
Dus zoiets als:
cd /usr/local/opt/readline/lib
ln -s libreadline.8.0.dylib libreadline.7.dylib
probeerde dat gewoon op Macos Mojave, Ruby 2.5.3P105 en rails 5.2.2 en werkte.
Antwoord 2, Autoriteit 11%
Het opnieuw installeren van mijn Ruby-versie lijkt het te hebben opgelost:
rvm reinstall 2.3.7
Antwoord 3, Autoriteit 9%
Kunt u
proberen
cd /usr/local/opt/readline/lib
ln -s libreadline.8.dylib libreadline.7.dylib
U bevindt zich op de goede weg, maar het lijkt erop dat rails op zoek zijn naar libreadline.7.dylib en libreadline.7.dylib is er niet in de map.
Antwoord 4, Autoriteit 5%
Ja, het beste antwoord is het opnieuw installeren.
U kunt de versie eenvoudig krijgen door te typen:
ruby -v
Met rbenv
, is de opdracht d.w.z.:
rbenv install 2.3.7
met rvm
:
rvm reinstall 2.3.7
Antwoord 5, Autoriteit 3%
Een zeer eenvoudige oplossing die niet gaat om het herbouwen van uw RVM-Gemset of Sym-Linking-bibliotheken.
Voeg toe aan je gemfile:
gem 'rb-readline'
Als u BUNDLER-groepen doet
group :development do
gem 'rb-readline'
end
Voer vervolgens
uit
> bundle
Laat me weten of dat niet werkt.
Antwoord 6
Meestal in Ruby-applicaties wordt dit veroorzaakt door edelstenen met extensies (de edelstenen die zeggen “Native extensions bouwen..”), die zijn gebouwd met een specifieke versie van, in dit geval, readline
.
In principe zijn er twee oplossingen:
U kunt ook versie 8 van de edelsteen symboliseren naar de ontbrekende versie. Dit zal in veel gevallen werken, maar als de achterwaartse compatibiliteit wordt verbroken, zal dit niet het geval zijn.
Of, als de edelsteen daadwerkelijk versie 8 ondersteunt, kunt u die specifieke edelsteen opnieuw installeren of “ongerept” door gem pristine --all
uit te voeren.
BEWERK: in het kader van uw “wat ik heb geprobeerd”, is het opnieuw installeren van PostgreSQL ook een van de binaire bestanden, gebouwd met een specifieke versie, die mogelijk ook opnieuw moet worden opgebouwd, om mee te werken een systeembibliotheek, zoals readline.
Antwoord 7
Heb dit probleem:
dyld: Library not loaded: /usr/local/opt/mpfr/lib/libmpfr.4.dylib
doen…
cd /usr/local/opt/mpfr/lib/
ln -s libmpfr.dylib libmpfr.4.dylib
heeft me geholpen voor macOS Catalina
Antwoord 8
Dus ik heb hier een paar antwoorden gecontroleerd, maar ik denk niet dat ze kunnen werken met een vanilla Mojave mac-installatie. Ik gebruik 10.14.4 terwijl ik deze deed:
-
krijg homebrew van https://brew.sh
-
$ brew install coreutils
: hiermee wordt de gnu coreutils pkg voor mac geïnstalleerd, we willen degreadlink
hiervan omdat de leeslink van macOSX niet hetzelfde is als de gnu leeslink. Het is extreem verwarrend, maar zo is het leven in Macland. -
$ echo 'alias readlink=greadlink' >> ~/.bash_aliases
Ik vond dat macs readlink een beetje ontbrak, dus ik heb de bestaande readlink overschreven door greadlink te aliasen. (u kunt dit voor alle gebruikers bruikbaar maken door$ alias readlink=greadlink >> /etc/bashrc
waardoor elke gebruiker het kan gebruiken. -
$ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
I het reeds gekoppelde bestand.8.
gekoppeld in plaats van ‘.8.0.’ bestand omdat als het zou worden bijgewerkt naar.8.1.
, mijn leeslink geen functies in de bibliotheek zal breken of missen. Ik ben er vrij zeker van dat we onze macs zullen formatteren voordat 9+ uitkomt.
Antwoord 9
Achtergrond: dit is gebeurd toen ik tig probeerde te installeren, maar ik denk dat dit een veelvoorkomend probleem is dat je mogelijk hebt en dat je de geïnstalleerde software handmatig moet koppelen aan het juiste pad dat een andere software wil.
Als u readline niet op uw Mac kunt vinden, moet u
. uitvoeren
brew install readline
Nadat je deadline hebt geïnstalleerd, zal brew je vragen om het te koppelen. Maar eigenlijk kun je niet linken door
brew link readline
Zelfs jij kunt niet linken door te rennen
sudo brew link readline
Mac OS zal u waarschuwen dat dit extreem gevaarlijk is en u tegenhouden.
De nieuwste versie van readline is versie 8, dus u zult de foutmelding zien zoals
Library not loaded: /usr/local/opt/readline/lib/libreadline.8.dylib
De deadline voor de installatie van het brouwsel om
/usr/local/Cellar/readline/8.0.4
Dus u moet het handmatig koppelen aan de plaats die uw software wil door opdracht ls
te gebruiken
ln -s /usr/local/Cellar/readline/8.0.4 /usr/local/opt/readline
Geniet!
Antwoord 10
Ik zou aanraden tegen handmatig symlink’ing inheemse bibliotheken. AA’s van OS X 10.4, de standaard omvat bibliotheekpad /usr/include
is niet langer gebruikt en is vergrendeld door SIP (waardoor het moeilijk is om dingen te verplaatsen).
Apple heeft een “legacy-installatieprogramma” voor u in staat om de headers op de “Oude Locatie” te installeren, die ook uw pad oplost om de koppen correct te vinden die zijn geïnstalleerd via brew
.
cp /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg ~/Desktop && open ~/Desktop/macOS_SDK_headers_for_macOS_10.14.pkg`
Zie hier voor een gedetailleerd schrijven over wat er aan de hand is .
Antwoord 11
Mijn probleem was slechts hetzelfde bij het uitvoeren van lftp
.
Gewoon uitvoeren brew upgrade
heeft mijn probleem opgelost, zoals het heeft bijgewerkt (onder andere):
readline 8.0.0_1 -> 8.0.1
lftp 4.8.4 -> 4.8.4_2