"pacman"을 사용하여 시스템을 업데이트할 수 없습니다

"pacman"을 사용하여 시스템을 업데이트할 수 없습니다

시스템을 업데이트하려고 하면 다음 오류가 발생합니다. 트랜잭션을 준비할 수 없습니다(종속성을 충족할 수 없음).

이것이 내가 얻는 것입니다:

~> sudo pacman -Syu
:: Synchronising package databases...
 gremlins is up to date
 system is up to date
 world is up to date
 galaxy-gremlins is up to date
 galaxy is up to date
 lib32 is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
:: Replace libcanberra-pulse with gremlins/libcanberra? [Y/n] n
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing expat (2.4.1-1) breaks dependency 'expat=2.3.0' required by lib32-expat
:: installing libcap (2.50-1) breaks dependency 'libcap=2.49' required by lib32-libcap
:: installing libelf (0.185-1) breaks dependency 'libelf=0.184' required by lib32-libelf
:: installing libcanberra (0.30+2+gc0620e4-4) breaks dependency 'libcanberra=0.30+2+gc0620e4-3' required by libcanberra-pulse

그런 다음 패키지를 제거하려고 했지만 expat"주의: 제거 목록에 금지된 패키지가 있습니다!"라는 메시지가 표시되었습니다.

나는 이것을 보았다웹 페이지expat, 그러나 여기에서는 문제가 있는 패키지를 제거할 수 있지만 저는 그것이 핵심의 일부이기 때문에 제거할 수 없습니다 .

이 시점에서 어떻게 해야 합니까?

답변1

저장소의 패키지는 lib32동일한 버전의 64비트 버전에 의존하는 다양한 라이브러리 등의 32비트 버전입니다.

와 같은 불안정한 테스트 저장소가 있고 gremlinsgalaxy-gremlins같은 최신 버전의 패키지를 제공 expat하지만 저장소가 없으므로 lib32-gremlins해당 패키지의 32비트 버전에 대해 동일한 업데이트를 얻을 수 없습니다. 즉, 이전 패키지를 안정적으로 유지할 수 있습니다. 패키지. 그리고 안정적인 32비트 패키지는 lib32-expat안정적인 리포지토리의 64비트 패키지에 의존하므로 시스템을 이전 버전으로 유지하거나(이전 32비트 패키지 종속성을 충족하기 위해) 최신 64비트 패키지를 설치할 수 있기 때문에 충돌이 발생합니다. (이렇게 하면 32비트 패키지의 종속성이 깨집니다. 즉, 해당 패키지를 제거해야만 이 작업을 수행할 수 있습니다.)

또는 lib32-gremlins64비트 테스트 저장소에서 32비트 버전의 패키지를 제공하는 저장소를 활성화하거나 모든 테스트 저장소를 비활성화할 수 있습니다. 이러한 작업 중 하나를 수행하면 64비트 및 32비트 저장소가 동기화 및 종속성으로 유지됩니다. 사용 가능한 최신 패키지로 해결할 수 있습니다.

관련 정보