時々、パッケージをアップグレードしようとすると、アップグレードされないパッケージはほとんどありません。
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
最も一般的な2つの理由は次のとおりです。
「予約済み」パッケージは、まだアーカイブで使用できない1つ以上のパッケージによって異なります。これは、Debian Sid、Debian Testing、またはその他の「ローリング」タイプのディストリビューションを使用する場合に最も一般的ですが、一般的なアップデートディストリビューションとセキュリティアップデートディストリビューションでも時々発生します。
タイミングの問題です。パッケージがアップロードされ、アーカイブに承認され、ローカルストレージミラーに展開される時期。通常、1 日か 2 日以内に解決されますが、メジャーアップグレードが進行中である場合 (たとえば、KDE または Gnome の新しいバージョンまたは多くのパッケージが含まれている場合)、1 つのパッケージが他のパッケージを大量に占める場合、時間がかかることがあります。 。バッグ。
心配する価値はありません。数日待ってから
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
各出力行の先頭にあるコード文字を理解する必要があります。