Arch에서 '파일 시스템' 패키지를 업그레이드할 수 없습니다

Arch에서 '파일 시스템' 패키지를 업그레이드할 수 없습니다

파일 시스템을 최신 버전으로 업그레이드할 수 없는데 최신 버전 /lib/lib64존재합니다.

링크를 제거할 수 없습니다. 그렇지 않으면 모든 바이너리가 실행되지 않습니다.

어떤 아이디어가 있나요?

# pacman -S filesystem
:: filesystem is in IgnorePkg/IgnoreGroup. Install anyway? [Y/n] 
resolving dependencies...
looking for inter-conflicts...

Targets (1): filesystem-2013.01-3

Total Installed Size:   0.31 MiB
Net Upgrade Size:       0.21 MiB

Proceed with installation? [Y/n] 
(1/1) checking package integrity                          [###############################] 100%
(1/1) loading package files                               [###############################] 100%
(1/1) checking for file conflicts                         [###############################] 100%
error: failed to commit transaction (conflicting files)
filesystem: /lib exists in filesystem
filesystem: /lib64 exists in filesystem
Errors occurred, no packages were upgraded.

답변1

문제는 심볼릭 링크가 다른 패키지로 옮겨졌을 /lib때 지적되었습니다 .

filesystem-2013.01-1과 glibc-2.17-2를 함께 업데이트합니다.

/lib 심볼릭 링크가 glibc 패키지에서 보다 적절한 파일 시스템 패키지로 이동되었으므로 glibc-2.17-2와 filesystem-2013.01-1을 함께 업데이트해야 합니다. 이는 를 실행할 때 자동으로 발생합니다 pacman -Syu. 부분 업데이트는 지원되지 않으므로 이 --force옵션을 사용해서는 안 됩니다.

x86_64에서 업그레이드할 때 발생할 수 있는 문제 중 하나는 /usr/lib64이 디렉터리의 파일을 포함하는 모든 Arch Linux 패키지가 업데이트되었다는 것입니다. 따라서 먼저 이러한 패키지를 개별적으로 업데이트하십시오. 이 디렉터리에 파일이 포함된 모든 AUR 패키지를 업데이트하여 /usr/lib.

답변2

이 솔루션은 질문에 설명된 문제에 대해 정확하게 작동하지 않습니다(하지만 이를 위해), 하지만 어쨌든 도움이 될 수 있습니다.

filesystem일반적으로 업데이트 실패는 이 패키지를 업데이트하기 전에 업데이트해야 하는 일부 다른 패키지로 인해 발생합니다 . 따라서 다음과 같이 업데이트하십시오.

$ sudo -s
# pacman -Syu --ignore filesystem,bash
# pacman -S bash
# pacman -Su

sudo첫 번째 명령은 업데이트 중에 루트 쉘이 손상될 경우를 대비해 루트 쉘이 열려 있는지 확인하는 것입니다 . 두 번째 명령은 filesystem이 패키지를 제외한 모든 패키지를 업데이트하고 마지막 명령은 마지막으로 filesystem.

AUR 또는 자체 컴파일된 패키지를 사용하는 경우:AUR 패키지의 파일이나 유지 관리되지 않은 파일도 문제를 일으킬 수 있다는 점에 유의하세요 filesystem. filesystem다음 조건으로 인해 업데이트가 실패한다고 가정해 보세요.

filesystem: /bin exists in filesystem
filesystem: /sbin exists in filesystem
filesystem: /usr/sbin exists in filesystem

AUR 패키지 또는 유지 관리되지 않는 파일을 확인 /bin하고 다음 명령을 /sbin사용해야 합니다 ./usr/sbin

grep '^\(bin\|sbin\|usr/sbin\)' /var/lib/pacman/local/*/files | cut -d ":" -f 1 | uniq | cut -d "/" -f 6

이 디렉터리 중 하나에 파일을 보관하는 모든 패키지를 나열하고

find /bin /sbin /usr/sbin -exec pacman -Qo -- {} + >/dev/null

어떤 패키지에도 속하지 않는 이 디렉터리의 모든 파일을 나열합니다.

AUR 패키지를 업데이트하거나 유지 관리되지 않는 파일을 /usr/local/...로 이동하면 업데이트가 filesystem작동합니다.

감사해요제이슨 라이언내 대답을 정정하십시오.

관련 정보