라이브러리가로드되지 않음 : /usr/local/opt/readline/lib/libreadline.6.2.dylib


239

방금 homebrew와 함께 posgresql을 설치했으며 명령을 계속 입력하면

psql

다음과 같은 오류가 발생합니다.

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

누구든지 무엇이 잘못되었는지 알고 있습니까?


1
readline에 연결된 것처럼 보이지만 존재하지 않습니다. 나중에 readline을 제거 했습니까? Homebrew와 PostgreSQL을 정확히 어떻게 설치 했습니까? (단계, commandS).
Craig Ringer

1
stackoverflow.com/questions/42356309/…의해 해결되었을 것입니다. 아래 대부분의 것보다 더 간결한 답변이 있습니다 (아마도 postgres를 다시 설치할 필요가 없습니다!)
thclark

답변:


373

나는 똑같은 오류가 발생했지만 위의 답변은 효과가 없었습니다. postgresql을 다시 설치해야했습니다.

brew reinstall postgresql


5
이것은 하나의 엘 캐피 날 위해 한
세바스찬 사스 트레에게

6
내 문제는 brew를 사용한 파이썬 설치와 관련이있는 것 같습니다
guyarad

6
Postgres 최신 버전이 아닌 경우이 작업을주의하십시오. 새 Postgres를 새 것과 함께 다시 설치 한 다음pg_upgrade
dazonic

7
로컬 데이터베이스를 잃고 싶지 않다면 이것은 매우 무겁습니다. 나는 'brew switch readline 6.3.8'로 운이 좋았다
Christopher Johnson

4
psql을 다시 설치하는 것이 작은 버그처럼 보이는 근본적인 단계라고 생각한다면 혼자가 아닙니다. 이 답변 : stackoverflow.com/a/41476592/839876 은 이러한 답변의 대부분이 해결하는 실제 문제를 해결하는 것으로 보입니다.
frandroid

127

주요 문제는 postgresql이 찾으려고 libreadline.6.2.dylib했지만 readline버전은7.0 이므로 7의 lib 만 연결되어 있다는 것입니다.

postgresql을 업그레이드하는 것은 좋은 생각이라고 생각하지 않습니다. 쉬운 일이 아니며 특히 데이터베이스 데이터가있는 경우 많은 문제가 발생할 수 있습니다.

내가하는 일은의 버전을 전환하는 것입니다 readline. 확인하면 brew info readline다른 버전을 찾을 수 있습니다. mine is 6.3.8이므로 다음을 실행하여 해당 버전으로 전환합니다.

$ brew switch readline 6.3.8

6.3.8로 변경되고 링크가 작성됩니다.

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

이 경우 링크 된 모든 lib가 6 버전이되고 명령 행이 작동합니다.

$ 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

그러나 다른 버전의 readline을 사용하는 앱이 다른 경우 업그레이드를 고려해야한다고 생각합니다.


업데이트 : 06/02/2019

이전 버전이 설치되어 있지 않으면 어떻게합니까?

Homebrew이전 버전 공식을 설치하는 방법을 제공하지 않습니다. v2.0.0부터는 brew cleanup30 일마다 기본 동작으로 실행 됩니다. 따라서 실수로 brew이전 버전을 업데이트 하고 삭제할 수 있습니다 .

이전 버전을 설치하는 단계는 다음과 같습니다.

  1. homebrew-core디렉토리로 이동하십시오 .
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
  1. 이전 수식의 해시를 확인하십시오.
    $ git log master -- Formula/readline.rb
  1. 해시 값의 해당 버전을 찾습니다.
    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. 이전 수식으로 결제 :
    $ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
  1. 공식을 다시 설치하십시오.
    $ brew reinstall readline
  1. 리포지토리 재설정

이러한 단계에 따라 이전 버전의 수식을 다시 설치할 수 있습니다.


1
그리고 나-readline 7에 다른 의존성이 없다면 이것은 가장 파괴적인 접근법입니다.
그린

이것은 또한 나를 위해 일했고, postge를 업데이트하는 것을 막았습니다.
Rich

나를 위해
일한

readline설치된 다른 버전으로 언제 다시 전환하고 싶 습니까? 이 작업을 수행하는 데 다른 단점이 있습니까?
Kenny Evitt

하나의 readline 만 설치했으며 readline의 로컬 체크 아웃에는 8.0 만 포함되어 있으며 모든 것을 가져온 후에도 로그에 이전 버전 커밋이 없습니다. 이전 버전의 readline을 설치하는 것이 불가능한 것 같습니다. postgres를 업그레이드하는 것이 유일한 옵션 일 수 있습니다
Andy Ray

78

상황이 더 높은 버전 인 readline이 7.0 인 경우. 당신은 이것을 할 수 있습니다

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

5
"libreadline.6.dylib"라는 링크를 만들어야했지만 이것이 나에게 도움이되는 유일한 제안이었습니다.
Mads Hoel

1
이것과 함께 brew uninstall --force gawk그리고 그때 brew install gawk나를 일으켰습니다. 당신은 또한 단지에 수있을 것brew reinstall --force gawk
Csteele5

1
좋아요 libreadline.7.dylib가 필요한 postgres 10.6을 실행하고 있지만 pg_toplibreadline을 8.0으로 업그레이드하고 psql을 중단 한 방금 설치했습니다 . 나는 당신의 트릭을 심볼릭 링크로 만든 것을 제외하고 사용했습니다 ln -s libreadline.8.0.dylib libreadline.7.dylib
Davos

감사합니다 이것은 PostgreSQL을 제거하고 다시 설치할 필요없이 MacOS Mojave에서 작동했습니다 (실제로 고통 스럽습니다).
crmpicco

46

readline이 설치되어 있지 않으면 먼저 설치하십시오.

brew install readline

나를 위해 readline을 설치했지만이 오류가 발생했습니다. readline을 다시 설치하면 트릭을 수행했습니다.

brew reinstall readline

6
readline을 다시 설치해도 나에게 도움이되지는 않지만 제거 / 설치 bash는 다음과 같습니다.brew install --build-from-source bash
whatbird

먼저 readline의 모든 버전을 제거해야한다는 것을 알았습니다 (brew uninstall --force readline). 다시 설치 한 후 "brew link --force readline"으로 강제 연결해야했습니다
Wilhelm

bash를 다시 설치하는 것도 나에게 맞는 해결책이지만 내 경우에는 "referenced from"줄이 bash를 구체적으로 언급했다.
mbafford

MacOS Sierra를 설치 한 후이 문제가 발생했습니다. 나는 brew reinstall readline(시에라 특정 양조주를 얻기 위해) 그리고 그것을하는 동안 둘 다 했다 brew reinstall postgresql94. 사람들은 bash를 다시 설치한다고 말했지만 시작하지는 않았습니다. 그래서이 답변과 선택한 답변이 모두 나를 위해 일했습니다.
risa_risa

다시 설치 readline에 psql9.6 더 이상 업그레이드 후 작업 (과거에 일한 적이있다) 다른 버전으로 전환 후 나를 위해 일한 BREW
bkunzi01

31

이것은 나를 위해 일했다

brew switch readline

설치 한 버전이 표시됩니다. 그중 하나를 선택하십시오. 나는 7.0.5를 골랐다

나는 그 다음 달렸다

brew switch readline 7.0.5

readline 버전이 업데이트되어 psql원활하게 실행 되었습니다 .


2
또한 나를 위해 일했습니다. psql은 load를 시도 libreadline.7.dylib했지만 readline 8.0.0을 사용하고있었습니다. 8.0.0에서 7.0.5로 전환하면 문제가 해결되었습니다. 8.0.0을 유지하고 싶다면 (다른 사람들이 한 것처럼) 심볼릭 링크를 만드는 것도 효과가있을 것으로 기대합니다. 그러나 이전 버전에 대한 최신 버전의 링크가 있으면 오해의 소지가 있으며 다른 문제가 발생할 수 있습니다.
Dennis

이 솔루션을 어떻게 찾았습니까? 매우 감동합니다!
kuzdu

1
같은 것을 시도했지만 다음과 같은 오류가 발생했습니다. readline의 Cellar에 "7.0.5"버전이 없습니다. 나는 7.0.5의 readline를 설치 BREW했지만, 그것은 다음과 같은 오류 보여줍니다 : 이름이 "7.0.5"@ 데니스와 사용 가능한 공식.
마헤 MESTA

23

이것은 나를 위해 일했다

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

이것은 나의 문제이기도했다. brew를 사용하지 않았으며 최신 업데이트 후 sym 링크가 누락되었습니다. 감사!
Matt

좋은! 내 정확한 오류는 6.2에 대해 불평했지만 명령이 약간 다릅니다. 오류가 발생 dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib하여 사용했습니다 ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.2.dylib.
Tyler Collier

20

해결책은 readline을 강제로 다시 연결하는 것입니다.

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

relink가 작동하지 않지만 postgresql을 다시 설치하면 효과가 있습니다.
Konstantin Tikhonov 2016 년

14

문제는 업데이트 readline 패키지에 관한 것 같습니다. postgres는 필자의 경우 /usr/local/opt/readline/lib/libreadline.7.dylib를 사용하려고했습니다. 그래서 방금 기존 버전의 라이브러리 /usr/local/opt/readline/lib/libreadline.8.dylib에 대한 심볼릭 링크를 만들었습니다.

나를 위해 일했다 :

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

이것은 나를 위해 일했습니다. 나는 psql의 버전 9.6.3에있어, 8의 readline
lacostenycoder

분명히 이것은 문제를 해결하는 데 도움이되는 해킹 방법이지만 관련이없는 업그레이드로 인해 readline 버전이 7에서 8로 푸시되고 Postgres 전체 재설치가 내가 해결하려는 것이 아니기 때문에이 문제가 발생했습니다. 이것은 작은 발자국 솔루션이며 readline에서 영향을 미치는 무언가의 위험은 작게 보입니다. 문제가 발생하면 다시보고합니다.
Scott Roth

의견 주셔서 감사합니다, 나는이 문제에 동의합니다. macos catalina로 업데이트 한 후 많은 문제가 발생했기 때문에이 문제를 파고 싶지 않았고 해킹을 사용했습니다.
Eugeny Maksimov


6

위의 답변은 저에게 효과적이지 않으므로 결국 작동하는 것을 게시하고 싶었습니다. 여기 에서 찾은 스레드를 기반으로 readline을 제거하고 소스에서 다시 설치해야했습니다.

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

그 후 psql 오류가 사라졌습니다.


5

나는이 문제를 가지고 있었고, 나를 위해 키를이었다 reinstall모두 readlinepostgres. postgres가 다시 설치되면 문제가 해결되었습니다.


5

psql을 수정하는 또 다른 방법 brew upgrade postgresql은 최신 버전에서 readline 7 버전을 사용하기 때문에 postgresql을 업데이트하는 것입니다.


4

실수로 readline을 버전 7로 업데이트했을 때이 문제가 발생했습니다. readline을 제거하고 6.3.8이 여전히 설치되어 있음을 알려줍니다. 현재 버전 7이 PSQL과 작동하지 않는 것 같습니다.


4

나는이 모든 터미널 명령을 시도했지만 아무것도 효과가 없으므로 수동으로 수정하기로 결정했습니다.

파인더를 열고 command + shift + g를 누르십시오

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

이 파일들의 여러 버전이 보일 것입니다

libreadline.6.dylib
libreadline.7.0.dylib

로드되지 않은 라이브러리로 이름을 바꿉니다.

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

나를 위해 잘 작동
mike_dz

3

나는 모든 미리보기 답변을 시도했지만 아무것도 효과가 없었습니다. 정말 나를 위해 일한 유일한 것은 :

brew link postgresql


2

이것은 나를 도왔다 : 모든 readline 및 postgresql을 제거하십시오.

수출 CPPFLAGS = -I / usr / local / opt / readline / include 수출 LDFLAGS = -L / usr / local / opt / readline / lib

posqtgresql을 설치하십시오


2

다음 명령이 저에게 효과적이었습니다.

brew reinstall postgresql
brew postgresql-upgrade-database


0

당신은 brew doctor그것이 말하는 것을 시도 하고 볼 수 있습니다.

아마도 당신이 필요한 전부입니다 brew link --overwrite bash.

OS X EL Capitan이 내 /usr폴더 를 손상시키는 보안 업그레이드가 있었기 때문에 방금 brew를 업그레이드했습니다 . 추출 업그레이드 중에 bash 링크가 끊어졌습니다 brew doctor.

그래서 나는 방금 달리고 brew link --overwrite bash모든 것이 정상입니다.


0

에 연결된 다른 것이 있는지 확인할 수 있습니다 postgresql. 나는 이전에 postgres93 패키지 에 링크했다.이 패키지는 '17 년 5 월 현재 지원되지 않고 제거되었다. 해당 링크를 제거한 다음 다시 연결하면 나를 위해 일했습니다.

brew unlink postgresql93
brew link postgresql

0

제 경우에는 정답이 문제를 해결하지 못했습니다.

~ / .zshrc 파일을 실행 brew doctor하고 추가 한 후 문제가 시작되었습니다 export PATH="/usr/local/bin:$PATH".

풀이

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

에서 ~/.zshrcGOT는 해결했다.


0

알 수없는 이유로, 다음 버전의 Readline에 대해이 오류가 발생하면 RVM이 어떻게 심볼릭 링크했는지에 관계없이 올바른 것을 찾을 수없는 것처럼 보입니다.

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

나는 보석 rb-readline을 내 Gemfile에 추가 하고 다른 것을 bundle install하고 작업을 시작했습니다.

나도 몰라

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.