공유 라이브러리 로드 오류: libicuuc.so.59: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

공유 라이브러리 로드 오류: libicuuc.so.59: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

업데이트됨 pacman -Syuq:

# pacman -Sc

pacman: error while loading shared libraries: libicuuc.so.59: cannot open shared object file: No such file or directory

# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60

Pi 버전 1의 Arch Linux:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux

답변1

이전에 제안된 솔루션은 나와 관련이 없거나 작동하지 않습니다. 어떤 이유로 icu패키지를 59.1-2에서 60.1-1로 업그레이드하면 링크가 끊어지고 많은 프로그램(팩맨 포함)이 이 오류로 인해 실패했습니다. 나는 여기서 팩맨을 방해하지 않았습니다.

캐시에 이전 패키지가 아직 남아 있으면 다음을 시도해 볼 수 있습니다. 이 방법이 제게는 효과적이었습니다.

  1. 패키지의 캐시된 버전을 찾습니다(예: 광산은 /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz).
  2. 추출:mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. 라이브러리를 lib 폴더에 복사합니다.sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. 계속 업데이트하세요:sudo pacman -Syu
  5. 이제 방금 추출한 파일을 삭제할 수 있습니다.

답변2

LD_LIBRARY_PATH 변수를 사용하여 다른 위치에서 icu 라이브러리를 로드할 수도 있습니다. 이렇게 하면 /usr/lib의 복사본을 만드는 것을 피할 수 있습니다.

$ mkdir -p ~/pkg/tmp
$ tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
$ su
# LD_LIBRARY_PATH=`pwd`/pkg/tmp pacman -U /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz

답변3

내 경우처럼 특정 버전의 라이브러리가 필요한 실행 파일이 있는 경우 다음이 있습니다.오르바우특정 버전의 경우.

답변4

pacman -Sc를 사용하면 문제가 해결된 다음 pacman -Syyu를 사용하면 왜 문제가 해결되었는지 알 수 없습니다.

관련 정보