업데이트됨 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
- 라이브러리를 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를 사용하면 왜 문제가 해결되었는지 알 수 없습니다.