Библиотека не загружена: /usr/local/opt/readline/lib/libreadline.7.dylib - PullRequest
0 голосов
/ 19 января 2019

Когда я пытаюсь запустить rails console, я получаю эту ошибку:

/Users/TuzsNewMacBook/.rvm/gems/ruby-2.3.7/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require':
 dlopen(/Users/TuzsNewMacBook/.rvm/rubies/ruby-2.3.7/lib/ruby/2.3.0/x86_64-darwin18/readline.bundle, 9): 
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)

Быстрый поиск привел меня к этой записи , и я попробовал несколько вещей:

brew reinstall postgresql (это действительно БД для этого проекта)

и

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

(моя версия readline - 8)

и brew link readline --force

Но ни один из них не исправил это.

Я недавно добавил pry-coolline, guard и guard-livereload гемов в мой проект, если это имеет какое-то значение (консоль rails загружается нормально перед этими).Я бегу на последних макосах.

(Обновление) Я использую рельсы в качестве консоли для рельсов, если это что-то меняет.

Любая помощь?Спасибо.

Ответы [ 6 ]

0 голосов
/ 16 июля 2019

Я бы рекомендовал не использовать родные библиотеки вручную по символическим ссылкам. В OS X 10.4 стандартный путь включения библиотеки /usr/include больше не используется и блокируется SIP (что затрудняет перемещение объектов).

Apple поставляет «устаревший установщик», чтобы вы могли устанавливать заголовки в «старом месте», что также поможет вам правильно найти заголовки, установленные через brew.

cp /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg ~/Desktop && open ~/Desktop/macOS_SDK_headers_for_macOS_10.14.pkg`

Смотрите здесь подробное описание того, что происходит .

0 голосов
/ 08 мая 2019

Да, лучший ответ - переустановить.

Вы можете легко получить версию, набрав:

ruby -v

С rbenv, команда то есть:

rbenv install 2.3.7

с rvm:

rvm reinstall 2.3.7
0 голосов
/ 17 апреля 2019

Итак, я проверил несколько ответов здесь, но я не думаю, что они могут работать с ванильной установкой Mojave mac.Я использую 10.14.4, в то время как я делал это:

  • получить homebrew от https://brew.sh

  • $ brew install coreutils: это установит пакет gnu coreutils для Mac,мы хотим получить greadlink, потому что ссылка для чтения в macOSX не совпадает с ссылкой для чтения в gnu.Это чрезвычайно запутанно, но такова жизнь в Макленде.

  • $ echo 'alias readlink=greadlink' >> ~/.bash_aliases Я обнаружил, что в файле malink readlink немного не хватает, поэтому я переопределил существующую ссылку readlink, используя псевдоним greadlink.(Вы можете сделать это доступным для всех пользователей с помощью $ alias readlink=greadlink >> /etc/bashrc, что позволит каждому пользователю иметь возможность использовать его.

  • $ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib Вместо этого я связал уже связанный файл .8.файла '.8.0.', потому что если он будет обновлен до .8.1., тогда моя ссылка для чтения не будет нарушать или пропускать функции библиотеки. Я почти уверен, что мы отформатируем наши macs до того, как выйдет 9+.

0 голосов
/ 23 января 2019

Переустановка моей версии Ruby, похоже, исправила это:

rvm reinstall 2.3.7
0 голосов
/ 21 января 2019

Чаще всего в Ruby-приложениях это вызвано гемами, которые имеют расширения (гемы, говорящие «Создание собственных расширений ..»), которые построены с использованием определенной версии, в данном случае, readline. * 1002. *

В основном, есть два решения:

Либо, вы можете использовать символическую ссылку 8 версии гема, чтобы версия отсутствовала. Это будет работать во многих случаях, но если обратная совместимость нарушена, это не будет.

Или, если гем на самом деле поддерживает версию 8, вы можете переустановить этот конкретный камень или «нетронутым» его, запустив gem pristine --all.

РЕДАКТИРОВАТЬ : В рамках вашего "того, что я пробовал", переустановка PostgreSQL также является одним из двоичных файлов, созданных с использованием определенной версии, для которой также может потребоваться перестройка для работы с системная библиотека, например readline.

0 голосов
/ 21 января 2019

ошибка возникает при поиске /usr/local/opt/readline/lib/libreadline.7.dylib.

Вы пытались что-нибудь связать?

Так что-то вроде:

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

Только что попробовал это на macOS Mojave, ruby ​​2.5.3p105 и Rails 5.2.2 и сработало.

...