もう少し知識のある人が、apt-get upgrade
Ubuntu 16.04 以降で行うことに関して何かを説明してくれることを期待しています。
私が目にしている動作は、apt-get upgrade
新しいカーネル パッケージがインストールされないこともあれば、インストールされることもあります。
つまり出力から:
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic linux-tools-generic
私するを実行すると、それらのパッケージがインストールされることはわかっていますdist-upgrade
(したがって、その回答を繰り返さないでください :-)。私が知らないのは、それらのパッケージの保留を制御しているものが何であるかです。
を実行すると、新しいカーネルがインストールされることもあればapt-get upgrade
、パッケージが保留されることもあります。
これらの保留は Canonical 自身によって行われているのでしょうか、それとも他のパッケージへの依存関係に関連しているのでしょうか?
答え1
このapt-get upgrade
コマンドはパッケージを新しいバージョンにアップグレードするだけで、新しいパッケージをインストールしたり、パッケージをアップグレードするためにパッケージを削除したりすることはありません。
カーネルをアップグレードすると、実際には新しいカーネルがインストールされます。Ubuntu はカーネルをアップグレードせず、古いカーネルを保持したまま新しいカーネルをインストールします。
しかし、なぜでしょうか? カーネルを最後のバージョンにアップグレードするのではなく、新しいバージョンをインストールするのはなぜでしょうか? その答えは安定性のためです。
カーネルのアップグレード後に何が起こるかはわかりません。システムの起動に失敗したり、ハードウェアが正常に動作しなくなる可能性があります。問題が発生した場合でもマシンが動作し続けるように、常に古いバージョンを保存しておく必要があります。
動作中のカーネルをアップグレードしないでください。
Slackwareは言うシステムアップグレードガイド。
より詳しい情報
man apt-get
:
いかなる状況においても、現在インストールされているパッケージが削除されたり、まだインストールされていないパッケージが取得されてインストールされたりすることはありません。別のパッケージのインストール状態を変更せずにアップグレードできない、現在インストールされているパッケージの新しいバージョンは、現在のバージョンのままになります。
ただし、ご存知のとおり、apt-get dist-upgrade
またはを使用してapt upgrade
これらの「保持された」パッケージをインストールすることもできます。
$ apt-cache search linux-image-4.4.*-generic | tail -3
linux-image-4.4.0-75-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-77-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-78-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
わかりますか? これらは異なるパッケージなので、アップグレードではなく新規インストールになります。