시스템을 업데이트하려고 하면 다음 오류가 발생합니다. 트랜잭션을 준비할 수 없습니다(종속성을 충족할 수 없음).
이것이 내가 얻는 것입니다:
~> 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비트 버전입니다.
와 같은 불안정한 테스트 저장소가 있고 gremlins
와 galaxy-gremlins
같은 최신 버전의 패키지를 제공 expat
하지만 저장소가 없으므로 lib32-gremlins
해당 패키지의 32비트 버전에 대해 동일한 업데이트를 얻을 수 없습니다. 즉, 이전 패키지를 안정적으로 유지할 수 있습니다. 패키지. 그리고 안정적인 32비트 패키지는 lib32-expat
안정적인 리포지토리의 64비트 패키지에 의존하므로 시스템을 이전 버전으로 유지하거나(이전 32비트 패키지 종속성을 충족하기 위해) 최신 64비트 패키지를 설치할 수 있기 때문에 충돌이 발생합니다. (이렇게 하면 32비트 패키지의 종속성이 깨집니다. 즉, 해당 패키지를 제거해야만 이 작업을 수행할 수 있습니다.)
또는 lib32-gremlins
64비트 테스트 저장소에서 32비트 버전의 패키지를 제공하는 저장소를 활성화하거나 모든 테스트 저장소를 비활성화할 수 있습니다. 이러한 작업 중 하나를 수행하면 64비트 및 32비트 저장소가 동기화 및 종속성으로 유지됩니다. 사용 가능한 최신 패키지로 해결할 수 있습니다.