[ruby-on-rails] 라이브러리가로드되지 않음 : /usr/local/opt/readline/lib/libreadline.7.dylib

실행하려고 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 (이것은 실제로이 프로젝트의 DB입니다)

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

(내 readline 버전은 8입니다)


brew link readline --force

그러나 이것들 중 어느 것도 그것을 고치지 못했습니다.

최근에 pry-coolline, guardguard-livereload 내 프로젝트에 보석은 어떤 차이가 (그 전에 콘솔로드 미세 레일)합니다. 최신 macOS에서 실행 중입니다.

(업데이트) 차이가 있다면 레일 콘솔로 프라이 레일을 사용하고 있습니다.

도움이 필요하세요? 감사.



답변

검색 할 때 오류가 발생하는 것 같습니다 /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에서 시도하고 작동했습니다.


답변

내 Ruby 버전을 다시 설치하면 문제가 해결 된 것 같습니다.

rvm reinstall 2.3.7


답변

할 수 있겠 니

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

당신은 올바른 길을 가고 있지만 rails가 libreadline.7.dylib를 찾고 있고 libreadline.7.dylib가 폴더에없는 것 같습니다.


답변

예, 가장 좋은 대답은 다시 설치하는 것입니다.

다음을 입력하여 쉽게 버전을 얻을 수 있습니다.

ruby -v

rbenv명령이 예입니다 :

rbenv install 2.3.7

와 함께 rvm:

rvm reinstall 2.3.7


답변

RVM gemset 또는 sym-linking 라이브러리를 재 구축하지 않는 매우 간단한 솔루션입니다.

Gemfile에 추가하십시오.

gem 'rb-readline'

번 들러 그룹을 수행하는 경우

group :development do
  gem 'rb-readline'
end

그런 다음 실행

> bundle

작동하지 않으면 알려주세요.


답변

대부분의 경우 Ruby 애플리케이션에서 이는 특정 버전 (이 경우 ..)을 사용하여 빌드 된 확장 ( “Building native extensions ..”이라고 말하는 gem)이있는 gem에 의해 발생합니다 readline.

기본적으로 두 가지 솔루션이 있습니다.

어느 쪽이든 gem의 버전 8을 누락 된 버전에 심볼릭 링크 할 수 있습니다. 이것은 많은 경우에 작동하지만 이전 버전과의 호환성이 깨지면 작동하지 않습니다.

또는 gem이 실제로 버전 8을 지원하는 경우 특정 gem을 다시 설치하거나 gem pristine --all.

편집 : “내가 시도한 것”의 범위에서 PostgreSQL을 다시 설치하는 것은 readline과 같은 시스템 라이브러리와 함께 작동하기 위해 재 빌드가 필요할 수도있는 특정 버전을 사용하여 빌드 된 바이너리 중 하나이기도합니다.


답변

이 문제가 있습니다.

dyld: Library not loaded: /usr/local/opt/mpfr/lib/libmpfr.4.dylib

하기…

cd /usr/local/opt/mpfr/lib/
ln -s libmpfr.dylib libmpfr.4.dylib

macOS Catalina를 위해 나를 위해 트릭을 수행했습니다.