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

방금 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

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



답변

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

brew reinstall postgresql


답변

주요 문제는 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. 리포지토리 재설정

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


답변

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

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


답변

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

brew install readline

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

brew reinstall readline


답변

이것은 나를 위해 일했다

brew switch readline

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

나는 그 다음 달렸다

brew switch readline 7.0.5

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


답변

이것은 나를 위해 일했다

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


답변

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

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