업그레이드할 때 "차단"되는 패키지가 거의 없는 이유는 무엇입니까? [복사]

업그레이드할 때 "차단"되는 패키지가 거의 없는 이유는 무엇입니까? [복사]

때때로 패키지를 업그레이드하려고 할 때 업그레이드되지 않는 패키지가 거의 없습니다.

root@pc:/home/user# sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  linux-headers-amd64 linux-image-amd64
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

시스템이 이러한 패키지를 업그레이드하지 않기로 결정한 이유는 무엇입니까? 어떻게 업그레이드할 수 있나요?

답변1

가장 일반적인 두 가지 이유는 다음과 같습니다.

  1. "예약된" 패키지는 아직 아카이브에서 사용할 수 없는 하나 이상의 패키지에 따라 달라집니다. 이는 Debian Sid, Debian Testing 또는 기타 "롤링" 유형 배포판을 사용하는 경우 가장 일반적이지만, 일반 업데이트 배포판과 보안 업데이트 배포판에서도 가끔 발생합니다.

    타이밍의 문제입니다. 패키지가 업로드되고 아카이브에 승인된 다음 로컬 저장소 미러에 배포되는 시기입니다. 일반적으로 하루나 이틀 내에 해결되지만 주요 업그레이드가 진행 중이거나(예: KDE 또는 Gnome의 새 버전 또는 많은 패키지가 포함된 경우) 하나의 패키지가 다른 패키지를 많이 차지하는 경우 시간이 더 오래 걸릴 수 있습니다. . 가방.

    걱정할 가치가 없습니다. 며칠 기다렸다가 다시 apt update시도해 보세요 apt upgrade.apt dist-upgrade

  2. 일부 패키지를 수동으로 보관했습니다(예: 를 사용하여 apt-mark hold). 를 사용하여 이 문제를 직접 해결할 수 있습니다 apt-mark unhold.

    그건 그렇고 , 특히 또는 같은 DKMS 패키지를 사용하는 경우 linux-headers-amd64및 를 모두 유지하는 것이 좋습니다 . 새 커널과 충돌하거나 새 커널과 작동하려면 새 패치가 필요할 수 있습니다.linux-image-amd64nvidia-kernel-dkmszfs-dkms아니요이러한 DKMS 패키지가 새 커널로 컴파일된다는 것을 알 때까지 커널을 업그레이드하십시오! 또한 패키지 *dkms*도 유지되어야 하며 수동으로만 업그레이드할 수 있습니다. 그런 다음 다음과 같이 수동으로 업그레이드하고 다시 유지할 수 있습니다.

     apt-get install linux-image-amd64 linux-headers-amd64 ; apt-mark hold linux-image-amd64 linux-headers-amd64
    

apt-cache(특히 showpolicy하위 명령) 및 (유용한 및 하위 명령이 aptitude있음 )을 사용하여 시스템의 실제 원인 조사를 시작할 수 있습니다. 예를 들어 다음을 실행해 보세요.whywhy-not

apt-cache show linux-image-amd64
apt-cache policy linux-image-amd64

aptitude why-not linux-image-amd64
aptitude why linux-image-amd64

출력을 해석하려면 설명서를 apt읽고 이해해야 합니다 . dpkg대부분은 매우 간단하고 명확하지만 일부는 그렇지 않습니다. 특히 출력은 aptitude why각 출력 줄의 시작 부분에 있는 코드 문자를 이해해야 합니다.

관련 정보