Я обновлял некоторые программы на своем 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.

В установочном файле gnuplot, когда я скачал его с sourceForge, я могу прочитать:

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.0 и brew install gnuplot --with-readline=/usr/local/Cellar/readline/8.0.0/lib но это не работает ...

1 ответ1

0

В случае, если это полезно: я сталкивался с подобными сообщениями об ошибках и обнаружил, что gnuplot зависит от gawk, а автоматически устанавливаемая версия gawk требует устаревшей версии readline. Мой бинарный файл gnuplot ссылается на правильную версию. Вы можете проверить, используя otool:

Gawk ссылается на libreadline.7.dylib

$ 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) *

Если в /usr /local есть другие двоичные файлы, которые зависят от старой readline, вы можете быстро найти их, используя:

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

Тогда вам повезет, улучшив их.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .