때때로 패키지를 업그레이드하려고 할 때 업그레이드되지 않는 패키지가 거의 없습니다.
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
가장 일반적인 두 가지 이유는 다음과 같습니다.
"예약된" 패키지는 아직 아카이브에서 사용할 수 없는 하나 이상의 패키지에 따라 달라집니다. 이는 Debian Sid, Debian Testing 또는 기타 "롤링" 유형 배포판을 사용하는 경우 가장 일반적이지만, 일반 업데이트 배포판과 보안 업데이트 배포판에서도 가끔 발생합니다.
타이밍의 문제입니다. 패키지가 업로드되고 아카이브에 승인된 다음 로컬 저장소 미러에 배포되는 시기입니다. 일반적으로 하루나 이틀 내에 해결되지만 주요 업그레이드가 진행 중이거나(예: KDE 또는 Gnome의 새 버전 또는 많은 패키지가 포함된 경우) 하나의 패키지가 다른 패키지를 많이 차지하는 경우 시간이 더 오래 걸릴 수 있습니다. . 가방.
걱정할 가치가 없습니다. 며칠 기다렸다가 다시
apt update
시도해 보세요apt upgrade
.apt dist-upgrade
일부 패키지를 수동으로 보관했습니다(예: 를 사용하여
apt-mark hold
). 를 사용하여 이 문제를 직접 해결할 수 있습니다apt-mark unhold
.그건 그렇고 , 특히 또는 같은 DKMS 패키지를 사용하는 경우
linux-headers-amd64
및 를 모두 유지하는 것이 좋습니다 . 새 커널과 충돌하거나 새 커널과 작동하려면 새 패치가 필요할 수 있습니다.linux-image-amd64
nvidia-kernel-dkms
zfs-dkms
아니요이러한 DKMS 패키지가 새 커널로 컴파일된다는 것을 알 때까지 커널을 업그레이드하십시오! 또한 패키지*dkms*
도 유지되어야 하며 수동으로만 업그레이드할 수 있습니다. 그런 다음 다음과 같이 수동으로 업그레이드하고 다시 유지할 수 있습니다.apt-get install linux-image-amd64 linux-headers-amd64 ; apt-mark hold linux-image-amd64 linux-headers-amd64
apt-cache
(특히 show
및 policy
하위 명령) 및 (유용한 및 하위 명령이 aptitude
있음 )을 사용하여 시스템의 실제 원인 조사를 시작할 수 있습니다. 예를 들어 다음을 실행해 보세요.why
why-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
각 출력 줄의 시작 부분에 있는 코드 문자를 이해해야 합니다.