권한이 없는 사용자 dyld에 대해 OSX 컬 오류가 발생함: 라이브러리가 로드되지 않음

권한이 없는 사용자 dyld에 대해 OSX 컬 오류가 발생함: 라이브러리가 로드되지 않음

내 MAC OS는 Yosemite 10.10이고 이전 버전의 컬이 있습니다. Xcode 및 Xcode 명령줄 도구를 설치했습니다.

I run cURL with the "sudo" command as  “sudo curl”:
    sudo curl
    Password:
    curl: try 'curl --help' or 'curl --manual' for more information

However, when I run curl under the common user in the the terminal, it failed as follows:

  dyld: Library not loaded: /usr/lib/libcurl.4.dylib
  Referenced from: /usr/bin/curl
  Reason: Incompatible library version: curl requires version 7.0.0 or later, but libcurl.4.dylib provides version 5.0.0
  Trace/BPT trap: 5


  I also downloaded the curl version of 7.43, and installed in /usr/local/bin.

  —  "which curl”  shows “/usr/local/bin/curl” 
  —  otool shows:
     otool -L /usr/local/bin/curl
     /usr/local/bin/curl:
     /usr/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
     /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
     /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
     /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP (compatibility version 1.0.0, current version 2.4.0)
     /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
      /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

   otool -L /usr/local/lib/libcurl.4.dylib 
    /usr/local/lib/libcurl.4.dylib:
    /usr/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
    /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
    /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
     /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP (compatibility version 1.0.0, current version 2.4.0)
     /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

그러나 컬은 여전히 ​​"sudo"에서 작동하지만 일반 사용자에게는 실패합니다.

  dyld: Library not loaded: /usr/local/lib/libcurl.4.dylib
  Referenced from: /usr/local/bin/curl
  Reason: Incompatible library version: curl requires version 8.0.0 or later, but libcurl.4.dylib provides version 5.0.0
  Trace/BPT trap: 5

한편, 이전 솔루션(homebrew를 사용하여 컬을 설치하려고 하면 libcurl.4.dylib에 대해 "호환되지 않는 라이브러리 버전"이 표시됩니다.) 내 경우에는 맞지 않습니다.

- 더- -

실제로 libcurl을 호출하는 명령은 동일한 정보로 실행될 수 없는 것 같습니다. 예를 들면 다음과 같습니다.

--맥 포트:

  [user @MBK ~]$port

  dlopen(/opt/local/libexec/macports/lib/pextlib1.0/Pextlib.dylib, 6): Library not   loaded: /usr/lib/libcurl.4.dylib
   Referenced from: /opt/local/libexec/macports/lib/pextlib1.0/Pextlib.dylib
   Reason: Incompatible library version: Pextlib.dylib requires version 7.0.0 or later, but libcurl.4.dylib provides version 5.0.0
    while executing "load /opt/local/libexec/macports/lib/pextlib1.0/Pextlib.dylib"
    ("package ifneeded Pextlib 1.0" script)
    invoked from within "package require Pextlib 1.0"
    (file "/opt/local/bin/port" line 47)

--네트워크 CDF:

 [user@MBK ~]$ncdump 

  dyld: Library not loaded: /opt/local/lib/libcurl.4.dylib
   Referenced from: /opt/local/bin/ncdump
   Reason: Incompatible library version: ncdump requires version 8.0.0 or later, but libcurl.4.dylib provides version 5.0.0
  Trace/BPT trap: 5

마찬가지로 "sudo" 명령도 작동합니다.

답변1

비슷한 문제가 발생하여 실행 중이었습니다.

curl http://some.site

dyld: Library not loaded: @rpath/libssl.1.0.0.dylib
Referenced from: /Users/samh/anaconda3/lib/libssh2.1.dylib
Reason: image not found

그러나 달리는 것이 conda install libssh2이 문제를 해결했습니다. 컬이 내 컴퓨터에서 몇 년 동안 작동해 왔기 때문에 이것은 나에게 이해가 되지 않습니다. 그러나 적어도 지금은 작동합니다.

답변2

curl이상적으로는 : 을 통해 다시 설치 brew reinstall curl해야 호환되지 않는 라이브러리가 다시 연결됩니다(.dylib문서).

그래도 도움이 되지 않으면 DYLD_LIBRARY_PATHDYLD_FALLBACK_LIBRARY_PATH변수의 값을 다시 확인하세요. 잘못 구성된 값으로 인해 이러한 문제가 발생할 수 있습니다(예: 귀하의 값을 확인하세요 ~/.bashrc). 설정을 해제하는 것이 이상적입니다. 그렇지 않으면 설정하지 않은 경우 다음과 같이 설정해 보세요.

export DYLD_FALLBACK_LIBRARY_PATH="/usr/X11/lib:/usr/lib"

유제:딜립과 OS X.

답변3

두 가지 문제가 있거나 sudo sh -c 'type curl';type curl두 가지 유형의 명령이 모두 동일한 파일을 표시하는 경우 어떤 유형의 명령인지 파악하는 데 어려움을 겪는 불쾌한 문제가 있지만 아마도 두 가지 더 간단한 문제가 있을 수 있습니다. 컬이 두 번 설치되고 동적 링커가 잘못 구성되었습니다.

답변4

최근에 Python 3.6에서 3.7로 마이그레이션했습니다. 나는 컬이 그 전에도 효과가 있었다고 확신합니다. 문제가 해결되었다는 사실은 conda install libssh2Python 업그레이드가 컬을 깨뜨린 것이라고 생각하게 만듭니다. 이런 설명일 수도 있겠네요샘 H부재, 즉 "...나에게는 이해가 되지 않습니다...".

관련 정보