로 업데이트 후 pacman -Syuq
:
# 팩맨 -Sc
pacman : 공유 라이브러리를로드하는 동안 오류가 발생했습니다 : libicuuc.so.59 : 공유 객체 파일을 열 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다
# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60
Pi 버전 1의 아치 리눅스 :
# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux
답변
이전에 제안 된 솔루션은 관련이 없거나 나에게 적합하지 않았습니다. 어떤 이유로 icu
패키지를 59.1-2에서 60.1-1로 업그레이드하면 연결이 끊어지고 많은 프로그램 (pacman 포함)이이 오류로 실패했습니다. 내 곁에 중단 된 팩맨이 없습니다.
여전히 캐시에 이전 패키지가 있다면 이것을 시도해 볼 수 있습니다.
- 캐시 된 버전의 패키지를 찾습니다 (예 : mine was
/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를 lib 폴더로 복사하십시오.
sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
- 업데이트 진행 :
sudo pacman -Syyu
- 이제 방금 추출한 파일을 제거 할 수 있습니다.
답변
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
답변
나는 문제를 연구하고에 대해 발견했다 /var/log/pacman.log
. 로그를 읽고 문제가 다음과 같은 것을 발견했습니다.
...
[2017-11-28 04:34] [ALPM] upgraded libmariadbclient (10.1.28-1 -> 10.1.29-1)
[2017-11-28 04:34] [ALPM] transaction interrupted
업데이트가 중단되어 연결 문제가 발생했습니다.
그런 다음 여기 에서 펌웨어를 다운로드했습니다 . 누락 된 라이브러리를 추출했습니다.
$ gunzip ArchLinuxARM-rpi-latest.tar.gz
$ tar -tf ArchLinuxARM-rpi-latest.tar |grep libicuuc.so.59
./usr/lib/libicuuc.so.59.1
./usr/lib/libicuuc.so.59
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59.1
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59
libicuuc.so.59
에 대한 심볼릭 링크 libicuuc.so.59.1
이므로로 이동 libicuuc.so.59.1
했습니다 /usr/lib/libicuuc.so.59
.
실행 pacman
중 libicudata.so.59
누락 된 오류가 발생했습니다 . 나는에 누락 된 라이브러리를 추출 /usr/lib
하고 pacman
🙂 일하고 있었다.
그런 다음 시스템을 업데이트하고 모든 라이브러리가 pacman -Syuq
있는지 확인했습니다 ldd /usr/bin/pacman
. v59 라이브러리를 옮기고 작동하는지 /usr/lib
확인 pacman
했습니다.
손가락이 교차하여 재부팅 … 성공적으로!
pacman -Sc
그리고 미소로 자러 간다. 🙂
답변
특정 버전의 라이브러리가 필요한 실행 파일이있는 경우 (내 경우와 같이) 해당 버전에 대한 aur 패키지 가 있습니다.
답변
pacman -Sc로 문제 해결 후 pacman -Syyu 문제가 해결 된 이유를 잘 모르겠습니다.
답변
시스템에 lib32-icu가 설치되어 있지 않습니다. pacman에서 lib32-icu를 설치하면 모든 문제가 해결됩니다.
sudo pacman -S lib32-icu
답변
다음 링크의 도움으로이 문제를 해결했습니다.
여기
이 기사에 따르면 다운 그레이드는 좋지 않은 아이디어이며 아마도 누락 된 종속성을 사용하는 패키지를 다시 작성해야합니다. 다운 그레이드는 여러 패키지에 영향을 줄 수 있습니다.