はじめに
Ubuntuを触り始めて、一番最初に覚えるコマンド。
sudo apt update
sudo apt upgrade -y
とりあえずネットの記事に「これを最初に叩け」と書いてあるから、意味も分からず儀式のようにお辞儀しながらEnterキーをターンッ!と叩いていたあの頃。
ある日、後輩に聞かれたんです。
「先輩、updateとupgradeってどっちも日本語にしたら『更新』ですよね?これ、何が違うんですか?」
その瞬間、私の頭はフリーズしました。
「えっと……updateがなんか準備で、upgradeが本体をアレする感じで……とりあえず両方打てば動くから!」
完全に実力不足が露呈した、冷や汗ダラダラの悲しい記憶。
今日は、あの日答えに窮した自分に向けて、「パッケージ管理の真実」を分かりやすく翻訳します。
パッケージ管理は「スーパーの買い出し」と同じ
Ubuntuでは、アプリ(パッケージ)のインストールや更新を apt というコマンドが管理しています。
これを、日常の「スーパーの買い出し」に例えると、一発で違いが分かります。
apt update = 「最新のチラシをもらってくる」
update という名前が非常に厄介なのですが、このコマンドは**「中身のアプリそのもの」を更新するわけではありません。
Ubuntuのシステム(あなたのPC)は、「どのアプリの最新版がどこにあるか」というリストを持っています。
sudo apt update を叩くと、システムの内部では以下のようなことが起きます。
- PC「インターネット上のサーバーさん!最新の品揃え(パッケージリスト)を教えて!」
- サーバー「ほいよ、これが今日の最新チラシやで」
つまり、**「スーパーに行って、今日のお買い得商品や新商品のラインナップが載った最新のチラシをもらってきているだけ」**なのです。手元のアプリは古いままです。
apt upgrade = 「チラシを見て、実際に商品を入れ替える」
チラシの準備ができたら、次はいよいよお買い物です。
sudo apt upgrade を叩くと、システムはこう動きます。
- PC「さっきもらった最新のチラシを見るぞ。お、今入ってるNginxの新しいバージョンが出てるな」
- PC「じゃあ、この古いNginxを捨てて、チラシに載ってた新しいNginxをダウンロードして入れ替えよう!(=アップグレード)」
ここで初めて、手元のアプリ本体が最新版にアップデートされます。
なぜ2つに分かれているのか?
「じゃあ最初から upgrade だけ打てば、勝手にチラシも最新にしてから更新してくれよ!」と思うかもしれません。
しかし、実務のサーバー運用では「勝手にバンバン最新版にされると、互換性が壊れてシステムが止まる」という大事故が起きかねません。
だからこそ、
-
「今はとりあえず、何が古くなっているか(チラシ)だけを確認したいな」(
updateだけ打つ) -
「よし、メンテナンスの時間が取れたから、一気にシステムを最新化するぞ!」(
updateしてからupgradeを打つ)
というように、人間の意思でコントロールできるようにあえて分離されているのです。
おわりに:おまじないからの脱却
「とりあえず両方叩く」という思考停止から抜け出し、それぞれの役割を理解した今。
あの後輩に、今ならドヤ顔でこう答えられます。
「update は最新のメニュー表をもらってくる作業で、upgrade は実際にそのメニューを注文して手元のアプリを最新にする作業だよ」
謎の呪文だったコマンドの「意味」を知ることで、ただの黒い画面が「自分の意思でシステムを管理する頼もしい相棒」に変わります。
さあ、今日も堂々と sudo apt update のチラシをダウンロードしに行きましょう!