업데이트 후 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로 업그레이드하면 연결이 끊어지고 이후 많은 프로그램(팩맨 포함)이 이 오류로 인해 실패했습니다. 내 편에서는 방해받는 팩맨이 없습니다.
캐시에 이전 패키지가 아직 남아 있는 경우 다음을 시도해 볼 수 있습니다. 이 방법은 저에게 효과적이었습니다.
- 캐시된 패키지 버전을 찾습니다(예: 내 패키지는
/var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz
). - 추출:
mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
- libs를 lib 폴더에 복사합니다.
sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
- 업데이트를 진행하세요:
sudo pacman -Syu
- 이제 방금 추출한 파일을 제거할 수 있습니다.
답변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를 사용하여 문제를 해결했습니다. 왜 문제가 해결되었는지 잘 모르겠습니다.