以前の記事でパッケージの更新についてまとめましたが、その中で一つ触れていなかったapt full-upgradeコマンドについて調べました。
以前の記事
Linuxでパッケージ(プログラム)を更新する方法 apt update / apt upgrade
動作環境
・Kubuntu 22.04
apt full-upgradeとapt upgradeの違い
始めに、aptコマンドをmanコマンドで調べます。
その中の「 full-upgrade」の説明は下記になります。
full-upgrade (apt-get(8))
full-upgrade はアップグレードの機能を実行しますが、システム全体をアップグレードするために必要とされる場合には、現在インストール済みのパッケージを削除することができます。
apt full-upgradeとapt upgradeとの違いは何になるのでしょうか?
続いて、「upgrade」を調べてみます。
upgrade (apt-get(8))
upgrade は、sources.list(5) で設定された取得元からシステムに現在インストール済みのすべてのパッケージで利用可能なアップグレードをインストールするために使用されます。依存関係を満たすために必要な場合は新しいパッケージがインストールされますが、既存のパッケージが削除されることはありません。パッケージのアップグレードにインストール済みパッケージの削除が必要な場合、そのパッケージのアップグレードは行われません。
apt upgradeは「依存関係を維持できて更新できるものは更新する」
対して、
apt full-upgradeは「依存関係を変更してでも更新する」
上記の違いがあります。
正直、よくわからないのは自分だけでしょうか。。。
apt full-upgradeはカーネルやディストリビューションのバージョンを上げたい時に使用。また依存関係を変更してもパッケージを更新したい時に使用。
いろいろと調べた結果、「apt full-upgrade」はカーネルやディストリビューションのバージョンを上げる際に使用するコマンドのようです。
また、パッケージのバージョンを上げる際に、依存しているパッケージやコンポーネントがあったとしても、そのパッケージやコンポーネントを削除したり、依存関係を変更してでもバージョンを上げる。更新する。コマンドのようです。(これはmanコマンドの説明と同じような気がしますが。。。)
上記のようなシチュエーションがカーネルやディストリビューションのバージョンを上げるときなのかもしれません。
apt full-upgradeを使用するタイミング
以上のことを踏まえると、apt full-upgradeは普段からそこまで使用しない。使用しなくてもよい。コマンドの印象を受けました。
私みたいな、個人の普段使いPCのような用途で使用している分には「apt full-upgrade」を使ってもそこまで影響はなさそうですが、依存関係が変更される結果、バージョンアップによって使用しているアプリが不安定になる可能性はありそうです。
また、開発環境、何かのサービスの実行環境機ではapt full-upgradeコマンドの使用は慎重になった方がよいと思われます。
依存関係の変更によるリスクが高まってしまうからです。
ですので、開発環境、何かのサービスの実行環境機で、安全にパッケージを更新したい場合は、「apt update」から「apt upgrade」で更新するというのが良いと思います。
または、必要性がなければパッケージの更新をしないというのも選択肢の一つだと思いました。
参考記事
まとめ
今回はapt full-upgradeというコマンドについて調べました。
manコマンドの説明のニュアンスが難しかったのですが、少しは理解できた?と思います。
後は自分でコマンドを使用してみて、コマンドの感触を確かめたいと思います。
普段のパッケージの更新は「apt update」から「apt upgrade」で更新していこうと思いました。