Mac에서 readline 라이브러리 문제


5

내 Mac에서 일부 프로그램을 업데이트하고 있었고 갑자기 gnuplot을 실행하는 데 문제가 발생했습니다. 오류는 다음과 같습니다.

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
Referenced from: .../something/...
Reason: image not found
Trace/BPT trap: 5

gnuplot을 제거하고 더 이상 설치할 수 없기 때문에 내 자신의 오류가 아닙니다 (인터넷에서 매우 가까운이 붙여 넣기 붙여 넣기).

내가 실행하면 brew install gnuplot, 내가 얻을 :

Warning: You are using macOS 10.11.
We (and Apple) do not provide support for this old version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Discourse, Twitter or IRC. You are responsible for resolving any issues you experience, as you are running this old version.

==> Installing dependencies for gnuplot: graphite2, harfbuzz, pango and qt
==> Installing gnuplot dependency: graphite2
==> Downloading https://github.com/silnrsi/graphite/releases/download/1.3.13/gra
Already downloaded: /Users/me/Library/Caches/Homebrew/downloads/e37be24d841649b167ec4be5e60ac444d5ec859aa32d694e93df5ff36c05b2bf--graphite2-1.3.13.tgz
==> cmake -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -D
Last 15 lines from /Users/me/Library/Logs/Homebrew/graphite2/01.cmake:
2019-01-29 12:04:38 +0100

cmake
-DCMAKE_C_FLAGS_RELEASE=-DNDEBUG
-DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG
-DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/graphite2/1.3.13
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_FIND_FRAMEWORK=LAST
-DCMAKE_VERBOSE_MAKEFILE=ON
-Wno-dev
-DHAVE_CLOCK_GETTIME:INTERNAL=0

CMake Error: No source or binary directory provided

Do not report this issue to Homebrew/brew or Homebrew/core!

These open issues may also help:
Update graphite2 to reference src dir in cmake https://github.com/Homebrew/homebrew-core/pull/36376

Error: You are using macOS 10.11.
We (and Apple) do not provide support for this old version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Discourse, Twitter or IRC. You are responsible for resolving any issues you experience, as you are running this old version.

sourceForge에서 다운로드 할 때 gnuplot의 설치 파일에서 읽을 수 있습니다 :

Readline issues:

As I understand the situation, Apple ships OSX with a "fake" libreadline shared
library. The file /usr/lib/libreadline.dylib is really a symlink to a compatibility
layer over the BSD libedit library. But the compatibility isn't complete, and in
particular it is missing some routines used for readline support by gnuplot. The
./configure script should be able to cope with this. But you will still be left
without some of the functionality of the "real" libreadline. For one thing,
libedit doesn't handle UTF-8 input.

You have several options:

1) Delete the fake libreadline libraries from OSX and install the real gnu
libreadline as a system library.

2) Install the real gnu libreadline into your personal account and tell gnuplot
to use it: ./configure --with-readline=/my/private/readline/installdir
This may require some playing around with additional -L and -I definitions in
CFLAGS, and is probably harder than replacing the system copy of the library.

3) Use gnuplot's built-in readline routines.  These now support UTF-8 input and
tab-completion of file names. ./configure --with-readline=builtin

brew로 두 번째 옵션과 같은 것을 어떻게 할 수 있는지 알고 있습니까?

고마워

편집하다 :

난 이미 시도 : brew switch readline 8.0.0brew install gnuplot --with-readline=/usr/local/Cellar/readline/8.0.0/lib하지만 작동하지 않습니다 ...


아무도 몰라? 나는이 문제에 정말로 귀찮게한다.
kipgon

답변:


10

gnuplot을 실행하려고하는 macOS 컴퓨터에서 정확히 동일한 문제가 발생했습니다. 그것을 해결하기 위해 인터넷에서 찾은 몇 가지 제안을 시도했지만 그중 어느 것도 나를 위해 작동하지 않습니다. 예를 들어, brew 업데이트 / 업그레이드, readline 제거, 설치 및 재설치, bash 업그레이드 및 기타 여러 가지 사항이 있습니다.

그래서 최근에 상황을 해결했습니다. 다음 줄에서 나는 내가 한 과정을 설명하려고 노력했다.

  1. cdlibreadline.7.dylib이 경우에 있어야 할 위치로/usr/local/opt/readline/lib/

  2. 내가 목록에 올 때 libreadline.8.0.dylib소프트 링크 만 찾았습니다 libreadline.8.dylib.

  3. libreadline.8.0.dylibgnuplot이 찾는 소프트 링크 (이 경우 7 번호 라이브러리)를 만들기 위해 라이브러리를 가리키는 새로운 소프트 링크 를 만들었습니다 libreadline.7.dylib.

    $ sudo ln -s libreadline.8.0.dylib libreadline.7.dylib
    

그게 다야. 터미널 또는 명령 줄 응용 프로그램을 재부팅해야 할 수도 있습니다.


3

도움이되는 경우 : 비슷한 오류 메시지가 나타 났으며 gnuplot이 gawk에 의존하고 gawk 버전에 자동으로 오래된 버전의 readline이 필요하다는 것을 알았습니다. 내 gnuplot 바이너리가 올바른 버전을 참조했습니다. 다음을 사용하여 확인할 수 있습니다 otool.

Gawk는 libreadline을 참조합니다.

$ otool -L /usr/local/bin/awk | grep -i read
    /usr/local/opt/readline/lib/libreadline.7.dylib (compatibility version 7.0.0, current version 7.0.0)

같은 문제가 발생하면 업그레이드 할 수 있어야합니다 gawk.

$ brew upgrade gawk
==> Upgrading 1 outdated package:
gawk 4.2.0_1 -> 4.2.1_1
==> Upgrading gawk 
==> Downloading https://homebrew.bintray.com/bottles/gawk-4.2.1_1.mojave.bottle.
######################################################################## 100.0%
==> Pouring gawk-4.2.1_1.mojave.bottle.1.tar.gz
🍺  /usr/local/Cellar/gawk/4.2.1_1: 87 files, 4.7MB
Removing: /usr/local/Cellar/gawk/4.2.0_1... (69 files, 3MB)

$ otool -L /usr/local/bin/awk | grep -i read    
    /usr/local/opt/readline/lib/libreadline.8.dylib (compatibility version 8.0.0, current version 8.0.0)

다음은 내가 설치 한 gnuplot의 버전입니다.

brew info gnuplot
gnuplot: stable 5.2.6 (bottled), HEAD
Command-driven, interactive function plotting
http://www.gnuplot.info/
/usr/local/Cellar/gnuplot/5.2.6_1 (48 files, 2.9MB) *

이전 readline에 의존하는 / usr / local에 다른 바이너리가있는 경우 다음을 사용하여 빠르게 찾을 수 있습니다.

for i in /usr/local/bin/* ; do if otool -L $i | grep -i libreadline.7; then echo "\t^ used by $i\n"; fi; done

그런 다음 운 좋게 업그레이드 할 수 있습니다.


0

를 사용하는 동안이 답변을 우연히 본 사람들은 다음 psql을 실행해야합니다.

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