방금 readline을 새로운 주요 버전으로 업그레이드했습니다.
$ grep readline.*7 /var/log/pacman.log
[2016-11-15 21:53] [ALPM] upgraded readline (6.3.008-4 -> 7.0-1)
이 GNUPG가 손상되었기 때문에:
$ gpg
gpg: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
이는 또한 패키지를 업그레이드할 수 없음을 의미합니다. 내가 어떻게 할안전하게설치를 복구하시겠습니까?
내가 지금까지 시도한 것다운그레이드읽는 줄:
- 패키지가 거기에 없습니다
/var/cache/pacman/pkg
- 다음에서 빌드이전PKGBUILD자체적으로 부팅되지 않기 때문에 실패합니다. 의존하는 장치
awk
도 누락되어 있습니다libreadline.so.6
.
답변1
답변2
이전 버전을 수동으로 확인하고 설치하여 문제를 해결했습니다.
- 다음에서 이전 버전을 다운로드하세요.아치 리눅스 아카이브
- 패키지 및 서명 파일을 다음 위치에 복사합니다.다른기계로 서명하고 거기에서 서명을 확인하십시오.
- 짐 등에서 꺼내다:
sudo tar -xvpf readline-6.3.008-4-x86_64.pkg.tar.xz -C / --exclude .PKGINFO --exclude .INSTALL
경고: 다른 패키지에는 사전 설치 또는 사후 설치 스크립트가 포함될 수 있습니다. 이것은 그렇지 않지만 경고를 받았다고 생각하십시오!
답변3
libreadline.so.7
대부분의 유틸리티가 실행 후에도 계속 작동할 수 있을 만큼 이전 버전과 호환되는 것 같습니다 .
sudo ln -s /usr/lib/libreadline.so.7 /usr/lib/libreadline.so.6
그 후 경고가 표시되었지만 새 패키지가 확인되도록 /usr/bin/bash: Symbol rl_readline_state has different size in shared object, consider re-linking
업데이트 pacman-key
하고 업그레이드한 다음 .libgcrypt
pacman -S bash
readline 7.0
팩맨의 Catch-22 스타일 불을 끈 후 다음 명령을 사용하여 정리하세요.
sudo rm /usr/lib/libreadline.so.6
답변4
@chbrown이 제안한 대로 했습니다.
sudo ln -s /usr/lib/libreadline.so.7 /usr/lib/libreadline.so.6
(링크 경고도 있습니다)
그런 다음 ca-certificates-utils에 대한 새로운 오류가 발생하여 다음 단계를 따라야 했습니다.https://bugs.archlinux.org/task/53217#comment155971
pacman -Sy --force ca-certificates-utils
그러면 다음을 수행할 수 있습니다.
pacman -Syu
모든 업그레이드가 원활하게 진행되었으며 libreadline/libreadline 링크 오류가 수정되었습니다.