Bibliotheek niet geladen: /usr/local/opt/readline/lib/libreadline.7.dylib

Als ik rails consoleprobeer 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, guarden guard-livereloadedelstenen 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 --alluit 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 de greadlinkhiervan 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_aliasesIk 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/bashrcwaardoor elke gebruiker het kan gebruiken.

  • $ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylibI 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/includeis 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 upgradeheeft 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

Other episodes