Kütüphane yüklenmedi: /usr/local/opt/readline/lib/libreadline.6.2.dylib


239

Ben sadece homgrew ile posgresql yükledim ve komut yazmak için devam

psql

Aşağıdaki hatayı alıyorum:

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
[1]    69711 trace trap  psql

Neyin yanlış olduğu hakkında bir fikri olan var mı?


1
Readline ile bağlantılı gibi görünüyor, ama mevcut değil. Daha sonra readline'ı kaldırdınız mı? PostgreSQL'i homebrew ile tam olarak nasıl kurdunuz? (Adımlar, komutlar).
Craig Ringer

1
Muhtemelen aşağıdakilerin çoğundan daha özlü bir cevabı olan stackoverflow.com/questions/42356309/… tarafından çözüldü (muhtemelen postgres'i yeniden yüklemenize gerek yok!)
10:15

Yanıtlar:


373

Aynı hatayı alıyordum, ancak yukarıdaki cevaplar benim için işe yaramadı. Postgresql'i yeniden yüklemek zorunda kaldım.

brew reinstall postgresql


5
Bu benim için El Capitan'da yaptı
Sebastian Sastre

6
Benim sorun demlemek kullanarak python kurulumu ile ilgili gibi görünüyor
guyarad 28:16

6
Zaten Postgres'in son sürümünde değilseniz bunu yaparken dikkatli olun. Eski Postgres'i yenisiyle birlikte yeniden yüklemeniz ve ardından birpg_upgrade
dazonic

7
Yerel veritabanlarınızı kaybetmek istemiyorsanız, bu çok ağırdır. 'Demlemek anahtarı readline 6.3.8' ile şansım vardı
Christopher Johnson

4
Psql'yi yeniden kurmanın küçük bir hata gibi görünen şey için radikal bir adım olduğunu düşünüyorsanız, yalnız değilsiniz. Bu cevap: stackoverflow.com/a/41476592/839876 , bu yanıtların çoğunun etrafındaki gerçek sorunu ele alıyor gibi görünüyor.
frandroid

127

Anahtar sorun, postgresql'inizi bulmaya çalıştığı, libreadline.6.2.dylibancak sizin readlinesürümünüz olduğundan 7.0, sadece 7'nin lib'i bağlantılı.

Postgresql'i yükseltmenin iyi bir fikir olduğunu düşünmüyorum, kolay değil ve özellikle veritabanı verileriniz olduğunda çok fazla soruna neden olabilir.

Yaptığım şey, sürümünü değiştirmek readline. Kontrol brew info readlineettiğinizde, farklı sürümler bulacaksınız, benimki 6.3.8, bu yüzden çalıştırıp bu sürüme geçiyorum:

$ brew switch readline 6.3.8

6.3.8 olarak değişir ve bağlantıyı oluşturur:

Cleaning /usr/local/Cellar/readline/6.3.8
Cleaning /usr/local/Cellar/readline/7.0.1
Opt link created for /usr/local/Cellar/readline/6.3.8

Bu durumda, tüm bağlı lib 6 sürümüne dönüşür ve komut satırı çalışır:

$ ls /usr/local/opt/readline/lib/
libhistory.6.2.dylib    libhistory.dylib    libreadline.a
libhistory.6.3.dylib    libreadline.6.2.dylib   libreadline.dylib
libhistory.6.dylib  libreadline.6.3.dylib
libhistory.a        libreadline.6.dylib

Ancak, readline'ın farklı sürümünü kullanan farklı uygulamalarınız varsa, bence yükseltmeyi düşünmelisiniz.


Güncelleme: 06/02/2019

Eski sürüm yüklü değilse ne olur?

Homebreweski sürüm formülünü yüklemek için bir yol sağlamaz. Ve v2.0.0'dan beri, brew cleanupher 30 günde bir varsayılan davranış olarak çalışacaktır . Bu nedenle, breweski sürümü yanlışlıkla güncelleyebilir ve silebilirsiniz.

Eski sürümü yükleme adımları şunlardır:

  1. homebrew-coreDizine git :
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
  1. Eski Formülde karmayı kontrol edin:
    $ git log master -- Formula/readline.rb
  1. Karma değerinin ilgili sürümünü bulun
    commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
    Author: BrewTestBot <brew-test-bot@googlegroups.com>
    Date:   Wed Aug 15 21:51:16 2018 +0000

        readline: update 7.0.5 bottle.
  1. Eski formüle ödeme:
    $ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
  1. Formülü yeniden yükleyin:
    $ brew reinstall readline
  1. Repoyu sıfırla

Bu adımları izleyerek, formülün eski sürümünü yeniden yükleyebilirsiniz.


1
Ve ben - readline 7'ye başka bağımlılığınız yoksa, bu kesinlikle en az yıkıcı yaklaşımdır.
çekti

Bu da benim için çalıştı, beni posterler güncelleme kurtardı
Zengin

Benim için de çalıştı ... tüm
veri tabanını

Ne zaman readlineyüklü olan diğer sürümüne geri dönmek istersiniz ? Bunu yapmanın başka dezavantajları nelerdir?
Kenny Evitt

Ben sadece bir readline yüklü ve yerel readline benim sadece 8.0 içerir ve günlük her şeyi getirdikten sonra bile herhangi bir eski sürüm taahhütleri yok. Benim için daha eski bir readline sürümü kurmak imkansız gibi görünüyor ve postgres yükseltmek tek seçenek olabilir
Andy Ray

78

Durum daha yüksek bir sürüm Readline 7.0 deyiniz varsa. Bunu yapabilirsiniz

cd /usr/local/opt/readline/lib    
ln libreadline.7.0.dylib libreadline.6.2.dylib

5
"Libreadline.6.dylib" adlı bir bağlantı oluşturmak zorunda kaldım ama bu benim için çalışan tek öneriydi.
Mads Hoel

1
Bu beni bir araya getiren brew uninstall --force gawkve sonra olan brew install gawkşeydi. brew reinstall --force gawk
Şunu

1
İyi bir. Ben libreadline.7.dylib bekliyor postgres 10.6 çalıştırıyorum ama ben sadece pg_tophangi libreadline 8.0 yükseltti yüklü ve psql kırdı. Bir sembolik yapmak dışında hilenizi kullandım ln -s libreadline.8.0.dylib libreadline.7.dylib
Davos

Mükemmel, teşekkürler. Bu, PostgreSQL'i kaldırmak ve yeniden yüklemek zorunda kalmadan MacOS Mojave'de çalıştı (gerçek bir acı olurdu).
crmpicco

46

Readline kurulu değilse, önce kurun:

brew install readline

Benim için, readline yüklü olsa bile bu hatayı alıyordum. Readline'ı yeniden yüklemek hile yaptı:

brew reinstall readline

6
readline'ı yeniden yüklemek benim için bashyapmadı , ancak kaldırma / yükleme yaptı:brew install --build-from-source bash
whatbird

Önce readline'ın tüm sürümlerini kaldırmam gerektiğini buldum (demlemek kaldırma - readline). Yeniden yükledikten sonra, "demlemek bağlantı - kuvvet okuma" ile bağlantı kurmak zorunda kaldı
Wilhelm

Bash'ı yeniden yüklemek de benim için bir düzeltmeydi, ancak benim durumumda "referans alınan" satırı özellikle bash'dan bahsetti.
mbafford

MacOS Sierra'yı yükledikten sonra bu sorunla karşılaşıyordum. Her ikisini de yaptım brew reinstall readline(Sierra'ya özgü demlemek için) ve iken brew reinstall postgresql94. İnsanlar bash'ı yeniden kurmayı söyledi ama başlamam hiç olmadı. Bu cevap ve seçilen cevap benim için çalıştı.
risa_risa

demlemek yeniden readline diğer sürümlere geçtikten sonra benim için çalıştı (geçmişte çalıştı) artık psql9.6'ya yükselttikten sonra çalışmadı
bkunzi01

31

Bu benim için çalıştı

brew switch readline

Bu, yüklediğiniz sürümleri görüntüler. Bunlardan birini seçin. 7.0.5 seçtim

Sonra koştum

brew switch readline 7.0.5

Readline sürümü güncellendi ve psqlsorunsuz bir şekilde çalıştı.


2
Benim için de çalıştı. psql yüklemeye çalışıyordu libreadline.7.dylib, ancak readline 8.0.0 kullanıyordum. 8.0.0'dan 7.0.5'e geçmek sorunu çözdü. 8.0.0 üzerinde kalmak istedim (diğerleri gibi) bir symlink oluşturma da işe yarayacağını umuyorum. Ancak daha eski bir sürüme daha yeni bir sürüm bağlantısı olması yanıltıcıdır ve başka sorunlara neden olabilir.
Dennis

Bu çözümü nasıl buldunuz? Çok etkilendim!
kuzdu

1
Aynı denedim, ancak aşağıdaki hatayı aldım: readline, Mahzende "7.0.5" sürümü yok. Demlemek 7.0.5 okuma hattı demeyi denedim, ancak şu hatayı gösterir: "7.0.5" adında kullanılabilir formül yok. @ Dennis
Mahesh Mesta

23

bu benim için çalıştı

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

Benim sorunum da buydu. Demlemek kullanmadım ve son güncellemeden sonra sym bağlantısını kaçırdım. Teşekkürler!
Matt

Güzel! Benim kesin hata 6.2 hakkında şikayet, benim komut biraz farklı. Hata dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib, bu yüzden kullandım ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.2.dylib.
Tyler Collier

20

Çözüm, readline'ın tekrar bağlanmasını zorlamaktır.

brew remove readline
brew install readline
brew link readline --force

relink benim için çalışmadı, ancak postgresql'i yeniden yüklemek işe yaradı.
Konstantin Tikhonov

14

Bana öyle geliyor ki, güncelleme readline paketiyle ilgili. postgres benim durumumda /usr/local/opt/readline/lib/libreadline.7.dylib kullanmaya çalıştı. Bu yüzden sadece /usr/local/opt/readline/lib/libreadline.8.dylib kütüphanesinin mevcut sürümüne bir sembolik bağlantı oluşturdum.

benim için çalıştı:

ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

Bu benim için çalıştı. Ben psql sürüm 9.6.3 ve readline 8 kullanıyorum.
lacostenycoder

Kuşkusuz bu sorunu düzeltmek için hacky bir yol, ancak bazı ilgisiz yükseltmeler okuma hattı sürümümü 7'den 8'e ittikten sonra bu soruna koşuyordum ve tam bir Postgres yeniden yüklemesi şu anda ele almak istediğim bir şey değildi. Bu küçük bir ayak izi çözümü ve okuma satırında etkili bir şey değiştirme riski küçük görünüyor, bu yüzden şimdilik devam ediyorum ve devam ediyorum. Hattın herhangi bir soruna neden olup olmadığını bildirir.
Scott Roth

Yorumunuz için teşekkürler, bu konuyu kabul ediyorum. Ben macos catalina güncelledikten sonra bir sürü sorun vardı, bu yüzden bu konuya kazmak ve kesmek kullanılan istemiyordu.
Eugeny Maksimov


6

Yukarıdaki cevap benim için işe yaramadı, bu yüzden sonunda neyin işe yaradığını göndermek istedim. Burada bulduğum bir iş parçacığına dayanarak, readline'ı kaldırmak ve tekrar yüklemek zorundayım ama kaynaktan.

brew uninstall readline
brew install --build-from-source readline

Bundan sonra psql hatası ortadan kalktı.


5

Bu sorunu yaşadım ve benim için anahtar reinstallhem readlineve postgres. Postgres yeniden yüklendikten sonra sorun çözüldü.


5

Psql düzeltmek için başka bir yolu güncelleme postgresql sadece brew upgrade postgresqlyeni sürümü readline 7 sürümünü kullanacağından beri çalışıyor .


4

Yanlışlıkla readline'ı sürüm 7'ye güncellediğimde bu sorunu yaşadım. Readline'ı kaldırdım ve demlemek bana 6.3.8'in hala yüklü olduğunu hatırlattı. Görünüşe göre sürüm 7 şu anda PSQL ile çalışmıyor.


4

Tüm bu terminal komutlarını denedim ve hiçbir şey işe yaramadı, bu yüzden manuel olarak düzeltmeye karar verdim.

Bulucuyu aç ve komut + üst karakter + g tuşlarına bas

Go to this folder /usr/local/opt/readline/lib/

bu dosyaların birden çok sürümünü görmelisiniz

libreadline.6.dylib
libreadline.7.0.dylib

herhangi bir kitaplığı yüklü olmayan herhangi biriyle yeniden adlandırın

this is: /usr/local/opt/readline/lib/libreadline.6.2.dylib
mine was: /usr/local/opt/readline/lib/libreadline.6.dylib

Benim için iyi çalışıyor
mike_dz

3

Tüm önizleme cevaplarını denedim ve hiçbir şey işe yaramadı. Benim için gerçekten işe yarayan tek şey şuydu:

brew link postgresql


2

Bu bana yardımcı oldu: tüm readline ve postgresql kaldır

dışa aktarma CPPFLAGS = -I / usr / local / opt / readline / dışa aktarma LDFLAGS = -L / usr / local / opt / readline / lib

ve posqtgresql'i yükleyin


2

Aşağıdaki komutlar benim için çalıştı:

brew reinstall postgresql
brew postgresql-upgrade-database


0

brew doctorNe yazdığını deneyebilirsin .

Muhtemelen tek ihtiyacınız olan şey brew link --overwrite bash.

Benim için, OS X EL Capitan'ın klasörümü etkileyen bazı güvenlik güncellemelerine sahip olduğu için demlemeyi yeni sürüme geçirdim /usr. Demleme yükseltmesi sırasında, bash bağlantısı koptu ve brew doctorbana bunu söylüyor.

Bu yüzden sadece koşuyorum brew link --overwrite bashve her şey yolunda.


0

İşaretlenmiş başka bir şeyin olup olmadığını kontrol etmek isteyebilirsiniz postgresql. Daha önce , Mayıs '17 itibariyle desteklenmeyen ve kaldırılan postgres93 paketine bağlanmıştım . Bu bağlantıyı kaldırıp yeniden bağlantı kurmak benim için çalıştı:

brew unlink postgresql93
brew link postgresql

0

Benim durumumda doğru cevap sorunu çözmedi.

Sorun çalıştırıldıktan brew doctorve eklendikten sonra başladıexport PATH="/usr/local/bin:$PATH" ~ / .zshrc dosyama .

Çıkarma

export PATH="/usr/local/bin:$PATH" 

dan ~/.zshrcAnladım'a çözüldü.


0

Bilinmeyen bir nedenden ötürü, bu hata Readline'ın bir sonraki sürümü için ortaya çıktığında, RVM'm nasıl symlinked olursa olsun doğru olanı bulamıyordu:

Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)

rb-readlineGemfile benim mücevher ekleme ve başka bir iş sona erdibundle install ve çalışmaya başladı.

Ben ... bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.