とりあえず最近ようやく理解できるようになったので、ブログにまとめておきます。
## aptってなに
DebianとかUbuntuで採用されてるパッケージ管理ソフト。Ubuntuに入ってるソフトウェアを導入・アップデート・削除するツールだと思っていただければOK。`apt`によるアップデートは、鯖メンテの最初のステップとなるので、まずはここから押さえていきます。
## 大まかな流れ
1. `apt update`でアップデートリストを取得する
2. `apt upgrade`でソフトウェアのアップデートをかける
3. (必要に応じて)`apt upgrade <パッケージ名>`で保留されたソフトウェアのアップデート
4. (必要に応じて)`apt full-upgrade`でカーネルのアップデート
5. `reboot`で再起動
## 詳細
### アップデートリストを取得する
`apt update`は「ソフトウェアのアップデート一覧を取得する」コマンドです。Gitでいうfetchみたいなもの。(と私は思っています)そのため、アップデートをする際は必ず最初このコマンドを入力する必要があります。
### ソフトウェアのアップデートをかける
`apt update`で取得したリストをもとに、`apt upgrade`でアップデートをかけます。
たまに `<数字> not apgraded`みたいな表示が出ますが、これは「アップデートが保留されたソフトウェアがあるよ」という意味です。上の行に何のソフトウェアが更新されなかったか書いてあるので、その時は次の作業に移ります。
### 保留されたソフトウェアのアップデート
`apt upgrade <パッケージ名>`といったように、直接ソフトウェアを指名してアップデートをかけていきます。
### システムのアップデート
Ubuntu自体のシステムアップデートを行う場合、`apt full-upgrade`を行います。この際不要なパッケージを削除したり、コア部分のアップデートがかかるため、動作がおかしくなる可能性があります。
一度仮想環境などで、アップデートをしてから本番環境に適応してください。
### 再起動を行う
念のため`reboot`でサーバーを再起動します。
## もっと効率的にできないの?
`sudo apt update && sudo apt upgrade -y`を行えば、リスト更新とアップデートができます。`apt upgrade`の`-y`オプションは「アップデートをかける前に聞かれる質問をYesで答える」というものです。
このコマンドで基本のアップデートを行い、再起動していきましょう。
## コマンドまとめ
```
$ sudo apt update && sudo apt upgrade -y
$ sudo apt upgrade <パッケージ名>
$ sudo apt full-upgrade
$ sudo reboot
```
## 参考サイト
- [aptコマンドによるパッケージ更新メモ - Qiita](https://qiita.com/syutorum001/items/c6fab8196d6353321f4d)
- [apt-get upgradeとapt-get dist-upgradeとapt upgradeとapt full-upgradeの違い](https://penpen-dev.com/blog/upgrade-tigai/)