目次
- はじめに
- 環境
- 今回やったこと
- 1. Ubuntuのバージョン確認
- 2. WSL本体のバージョン確認
- 3. WSL本体のアップデート
- 4. Ubuntuのパッケージ一覧を更新
- 5. 更新可能なパッケージを確認
- 6. Ubuntuのパッケージを更新
- 7. 不要パッケージを確認する
- 私が躓いた点
- 今回使ったコマンドまとめ
- どのくらいの頻度で更新すればよいのか
- まとめ
はじめに
Linuxでは、権限昇格系の脆弱性が見つかることがあります。
権限昇格とは、通常ユーザーの権限しか持っていない状態から、何らかの脆弱性を悪用して管理者権限に近い操作ができてしまうような問題です。
今回は、WSL2上で使用しているUbuntu環境について、セキュリティ更新を適用するためにアップデート作業を行いました。
この記事では、実際に確認したコマンド、操作順、確認ポイント、躓いた点を初心者向けにまとめます。
環境
- Windows 11
- WSL2
- Ubuntu 24.04 LTS
- PowerShell 7
- Docker / Laravel Sail 学習環境あり
Ubuntuのバージョン確認結果です。
WSL本体のバージョン確認結果です。
今回やったこと
今回実施した作業は以下です。
- Ubuntuのバージョン確認
- WSL本体のバージョン確認
- WSL本体のアップデート
- Ubuntuのパッケージ一覧更新
- 更新可能なパッケージの確認
- Ubuntuのパッケージ更新
- 不要パッケージの確認・削除
1. Ubuntuのバージョン確認
Ubuntu側で以下を実行しました。
lsb_release -a
実行結果では、Ubuntu 24.04 LTS 系であることを確認できました。
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble
No LSB modules are available. という表示も出ましたが、これは異常ではありません。
2. WSL本体のバージョン確認
Windows側のPowerShellで以下を実行しました。
wsl --version
WSL本体やカーネルのバージョンを確認できます。
Ubuntuの更新とWSL本体の更新は別物です。
- Ubuntu側の更新:
apt update/apt upgrade - WSL本体の更新:
wsl --update
という違いがあります。
3. WSL本体のアップデート
Windows側のPowerShellで以下を実行しました。
wsl --update
今回は、WSLがバージョン 2.7.3 に更新されました。
WSL本体の更新では、WSLの機能やLinuxカーネル側の更新が行われます。
4. Ubuntuのパッケージ一覧を更新
Ubuntu側で以下を実行しました。
sudo apt update
このコマンドは、実際にパッケージを更新するのではなく、更新可能なパッケージ一覧を取得するコマンドです。
実行結果に以下のような表示が出ました。
45 packages can be upgraded.
これは、45個のパッケージに更新があるという意味です。
5. 更新可能なパッケージを確認
sudo apt update の実行後、更新可能なパッケージの中身を確認します。
apt list --upgradable
このコマンドを使うと、どのパッケージに更新があるのかを事前に確認できます。
sudo apt update の結果に以下のような表示が出た場合でも、
45 packages can be upgraded.
この時点ではまだ実際の更新は行われていません。
そのため、sudo apt upgrade を実行する前に、apt list --upgradable で更新対象を確認しておくと安心です。
6. Ubuntuのパッケージを更新
次に以下を実行しました。
sudo apt upgrade
ここで重要なのは、すぐに Y を押さず、更新内容を確認することです。
見るポイントは以下です。
| 確認箇所 | 今回の表示 | 意味 |
|---|---|---|
The following packages will be upgraded: |
libgnutls30t64 rsync |
更新されるパッケージ |
2 upgraded |
2件 | 更新される件数 |
0 newly installed |
0件 | 新しく追加されるパッケージはない |
0 to remove |
0件 | 削除されるパッケージはない |
1 not upgraded |
1件 | 今回更新されないパッケージがある |
Need to get ... |
0 B/1445 kB |
ダウンロード容量 |
Do you want to continue? [Y/n] |
続行確認 |
Y で更新を進める |
今回は以下のように表示されました。
2 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
特に重要なのは、以下の2点です。
0 newly installed
0 to remove
新しく追加されるパッケージはなく、削除されるパッケージもありませんでした。
また、以下の表示から、今回の更新がセキュリティ更新であることも確認できました。
2 standard LTS security updates
そのため、問題なさそうだと判断し、Y を入力して更新を進めました。
なお、以下のように snapd は今回更新されませんでした。
The following upgrades have been deferred due to phasing:
snapd
これはUbuntuの段階的配信によるもので、今回はそのまま進めました。
7. 不要パッケージを確認する
最後に、不要パッケージが残っていないか確認しました。
sudo apt autoremove
実行結果です。
今回は以下のように表示されました。
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
特に重要なのは以下です。
0 to remove
これは、現在不要になっているパッケージが存在しないことを意味します。
そのため、今回削除されるパッケージはありませんでした。
また、
1 not upgraded
は、前の手順で確認した snapd の段階的配信による保留分です。
異常ではなく、Ubuntuの通常動作です。
私が躓いた点
1. sudo が片方にしか効いていなかった
最初に以下のように実行しました。
sudo apt update && apt upgrade -y
一見問題なさそうに見えますが、これは後半の apt upgrade -y に sudo が付いていません。
そのため、以下のようなエラーになりました。
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (...), are you root?
正しくは以下です。
sudo apt update && sudo apt upgrade -y
ただし、今回は更新内容を確認したかったため、最終的には -y なしで実行しました。
sudo apt update
sudo apt upgrade
2. apt update と apt upgrade の違い
最初は、apt update だけで更新されると思っていました。
しかし実際には役割が違います。
| コマンド | 役割 |
|---|---|
sudo apt update |
更新可能なパッケージ一覧を取得する |
sudo apt upgrade |
実際にパッケージを更新する |
つまり、apt update の後に apt upgrade が必要です。
3. -y を付けるか迷った
-y を付けると、確認なしで自動的に Yes として進みます。
sudo apt upgrade -y
学習環境や本番環境では、削除対象や更新対象を確認したい場面があります。
そのため今回は、以下のように -y なしで実行しました。
sudo apt upgrade
初心者のうちは、確認画面を見てから Y を入力する方が安全だと感じました。
4. autoremove も -y なしの方が安心だった
不要パッケージ削除も、以下のように -y なしで実行しました。
sudo apt autoremove
削除対象を確認してから進められるためです。
今回は 0 to remove だったので、削除対象はありませんでした。
今回使ったコマンドまとめ
lsb_release -a
Ubuntuのバージョン確認。
wsl --version
WSL本体のバージョン確認。
wsl --update
WSL本体の更新。
sudo apt update
Ubuntuのパッケージ一覧更新。
apt list --upgradable
Ubuntuの更新対象の一覧表示。
sudo apt upgrade
Ubuntuのパッケージ更新。
sudo apt autoremove
不要パッケージの確認・削除。
どのくらいの頻度で更新すればよいのか
今回調べた中で、Ubuntu や WSL 環境は、定期的にセキュリティ更新を適用することが重要だと分かりました。
ただし、毎日大型アップデートをする必要があるわけではありません。
学習環境や個人開発環境であれば、以下くらいが現実的だと思います。
sudo apt updatesudo apt upgradewsl --update
を週1回程度確認する。
特に Docker、Composer、npm などを使う環境では、セキュリティ修正が入ることもあるため、定期的な更新は大切だと感じました。
まとめ
今回、WSL2上のUbuntu環境でセキュリティ更新のためにアップデート作業を行いました。
学んだことは以下です。
-
apt updateは一覧更新 -
apt upgradeは実際の更新 -
sudoは&&の後ろにも必要 -
-yなしなら更新内容を確認してから進められる -
autoremoveは不要になった依存パッケージの整理に使う - Ubuntuの更新とWSL本体の更新は別物
Linuxのアップデートは、コマンドを丸暗記するよりも、何を確認してから進めるかが大切だと感じました。






