Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Ubuntu】apt upgrade と apt-get upgrade の違い|サーバ管理ではどちらを使うべき?

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!
スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

apt upgrade と apt-get upgrade の違い

UbuntuやDebian系のサーバでパッケージを更新するとき、apt upgradeapt-get upgrade のどちらを使うべきか迷うことがあります。結論から言うと、手作業でサーバを管理する場合は apt upgrade、スクリプトや自動化で使う場合は apt-get upgrade が基本です。

apt と apt-get の位置づけ

apt は、人がターミナル上で直接使いやすいように作られたコマンドです。表示が見やすく、更新対象や進行状況も把握しやすいため、日常的なサーバ管理ではこちらが扱いやすいです。

一方で apt-get は、より古くから使われている低レベル寄りのコマンドです。出力や挙動が比較的安定しているため、シェルスクリプト、cron、Dockerfile、CI、構成管理ツールなど、自動処理の中では apt-get がよく使われます。

普段実行するなら apt upgrade でよい

自分でログインしてサーバを更新する場合は、次の流れで問題ありません。

sudo apt update
sudo apt upgrade

apt update は、利用可能なパッケージ情報を更新するコマンドです。実際にパッケージを更新するのが apt upgrade です。

更新前に確認したい場合

サーバ運用では、いきなり更新するのではなく、何が更新されるのかを先に確認したい場合があります。その場合は次のようにします。

sudo apt update
apt list --upgradable

更新対象を確認して問題なさそうであれば、次を実行します。

sudo apt upgrade

apt-get upgrade を使う場面

apt-get upgrade も、基本的には同じようにパッケージ更新を行います。

sudo apt-get update
sudo apt-get upgrade

ただし、手作業で実行するなら apt の方が見やすいため、普段のサーバ管理では apt を使えば十分です。apt-get は、自動化やスクリプト内で使うもの、と考えると分かりやすいです。

apt upgrade と apt-get upgrade で結果に差が出る場合

apt upgradeapt-get upgrade で、今適用できるパッケージの結果に差が出ることがあります。これは異常とは限りません。

主な理由は、apt upgrade の方が手作業向けに少し柔軟で、更新に必要な新しい依存パッケージの追加を許す場合があるためです。一方、apt-get upgrade はより保守的で、既存パッケージの更新は行いますが、新しいパッケージの追加や既存パッケージの削除が必要になる更新は保留しやすいです。

そのため、apt upgrade では適用可能と表示され、apt-get upgrade では保留される、ということがあります。

このような場合は、まず実行内容をシミュレーションして確認します。

sudo apt update
sudo apt upgrade --dry-run

表示された内容に問題がなければ、通常は次のコマンドで進めて大丈夫です。

sudo apt upgrade

apt-get を使いながら、新しい依存パッケージの追加も許可したい場合は、次のように実行できます。

sudo apt-get --with-new-pkgs upgrade

ただし、パッケージの削除が必要になる更新まで進める場合は upgrade ではなく full-upgrade の領域です。削除対象をよく確認してから実行します。

full-upgrade が必要になる場合

upgrade では、更新に伴って新しいパッケージの追加や既存パッケージの削除が必要になる場合、その更新が保留されることがあります。

そのような場合は、内容を確認したうえで full-upgrade を使います。

sudo apt full-upgrade

full-upgrade は、必要に応じてパッケージの追加や削除も行うため、通常の upgrade より影響範囲が広くなります。サーバで実行する場合は、削除されるパッケージがないかを必ず確認してから進めるのが安全です。

不要になったパッケージが表示された場合

更新後に「もう必要とされていません」と表示されるパッケージは、以前は依存関係で自動インストールされたものの、現在は依存元がなくなったパッケージです。基本的には削除して問題ありません。

まずは、削除される内容を確認します。

sudo apt autoremove --dry-run

問題なさそうであれば、実際に削除します。

sudo apt autoremove

もし残したいパッケージが含まれている場合は、手動インストール扱いに変更できます。

sudo apt-mark manual パッケージ名

まとめ

手作業でサーバを更新するなら、基本は次のコマンドで十分です。

sudo apt update
sudo apt upgrade

スクリプトや自動化では、安定した挙動が期待できる apt-get を使うのが一般的です。

つまり、普段のサーバ管理では apt、自動化では apt-get と使い分ければ問題ありません。両者で適用可能なパッケージ数に差が出る場合は、apt upgrade --dry-run で内容を確認し、問題なければ apt upgrade で進めます。更新後に不要なパッケージが表示された場合は、apt autoremove --dry-run で確認してから削除すると安全です。


タイトルとURLをコピーしました