Development Tip

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

yourdevel 2020. 10. 30. 21:09
반응형

라이브러리가로드되지 않음 : /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, guard그리고 guard-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

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

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

ruby -v

rbenv명령이 예입니다 :

rbenv install 2.3.7

와 함께 rvm:

rvm reinstall 2.3.7

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

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

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

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

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


너 시도 할 수있어

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

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


그래서 나는 여기에 몇 가지 답변을 확인했지만 바닐라 Mojave Mac 설치로 작동 할 수 있다고 생각하지 않습니다. 나는 이것을하는 동안 10.14.4를 사용하고 있습니다.

  • https://brew.sh 에서 homebrew를 얻으십시오.

  • $ brew install coreutils: 이것은 mac 용 gnu coreutils pkg를 설치합니다. greadlinkmacOSX의 readlink가 gnu readlink와 동일하지 않기 때문에 이에 서 원합니다. 그것은 매우 혼란 스럽지만 맥 랜드에서의 삶입니다.

  • $ echo 'alias readlink=greadlink' >> ~/.bash_aliases나는 macs readlink가 약간 부족하다는 것을 알았으므로 greadlink 별칭을 지정하여 기존 readlink를 덮어 썼습니다. (모든 사용자가이 기능을 사용할 수 있도록 만들면 모든 사용자가 $ 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.내 읽기 링크가 라이브러리의 기능을 중단하거나 놓치지 않기 때문 입니다. 9+가 나오기 전에 Mac을 포맷 할 것이라고 확신합니다.


수동으로 기본 라이브러리를 심볼릭 링크하지 않는 것이 좋습니다. OS X 10.4부터 표준 포함 라이브러리 경로 /usr/include는 더 이상 사용되지 않으며 SIP에 의해 잠 깁니다 (이동을 어렵게 함).

Apple ships a “legacy installer” for you to be able to install the headers in the “old location”, which will also resolve your path to correctly find headers installed via 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`

See here for a detailed write-up on what is going on.

참고URL : https://stackoverflow.com/questions/54261455/library-not-loaded-usr-local-opt-readline-lib-libreadline-7-dylib

반응형