[[Ubuntu 24.04 LTS(Noble Numbat)|Ubuntu 24]]がリリースされてから1年近く経つので、[[WSL]]の[[Ubuntu 22.04 LTS|Ubuntu 22]]をアップデートする。
以下を参考に。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://static.zenn.studio/images/logo-transparent.png" />
<span class="link-card-v2-site-name">Zenn</span>
</div>
<div class="link-card-v2-title">
WSLのUbuntu 22.04 LTSを24.04にアップグレードする
</div>
<img class="link-card-v2-image" src="https://res.cloudinary.com/zenn/image/upload/s--3sflleze--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:WSL%25E3%2581%25AEUbuntu%252022.04%2520LTS%25E3%2582%259224.04%25E3%2581%25AB%25E3%2582%25A2%25E3%2583%2583%25E3%2583%2597%25E3%2582%25B0%25E3%2583%25AC%25E3%2583%25BC%25E3%2583%2589%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:playree%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSzc1OVNMOTM4THJqcFl0OUxnSUZKS2NlYThMTVEwbkwyS3oteFBxbUcyQTB3PXM5Ni1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" />
<a href="https://zenn.dev/playree/articles/6682c5aa4c4722"></a>
</div>
## 状況確認
```console
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
```
## パッケージとシステムを最新化
```console
sudo apt update
```
いくつか警告。
```warning
9 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target CNF (main/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target CNF (main/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target CNF (main/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
W: Target CNF (main/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:3 and /etc/apt/sources.list.d/google.list:1
```
```console
sudo apt upgrade
```
## Ubuntuの再起動
[[Windows]]側から[[WSL]]を停止。
```console
wsl --shutdown
```
ターミナルを立ち上げて再起動。
## アップグレード
まずはアップグレードできることの確認から。
```console
$ sudo do-release-upgrade -c
Checking for a new Ubuntu release
New release '24.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
```
そしてアップグレード。
```console
$ sudo do-release-upgrade
```
### terminfoが見つからないエラー
```error
Get:2 Upgrade tool [1277 kB]
Fetched 1278 kB in 0s (0 B/s)
authenticate 'noble.tar.gz' against 'noble.tar.gz.gpg'
extracting 'noble.tar.gz'
Cannot find terminfo entry for 'owlterm-256color'.
```
`~/work/owlterm-256color.src` を使って独自の[[terminfo]]を定義しているのがまずいのかも。一旦以下をコメントアウトしてみる。
```bash
export TERM="owlterm-256color"
```
とりあえず先に進んだ。
### サードパーティーソースの無効警告
```console
Third party sources disabled
Some third party entries in your sources.list were disabled. You can
re-enable them after the upgrade with the 'software-properties' tool
or your package manager.
To continue please press [ENTER]
```
[[Docker]]と[[Google Chrome]]が影響を受けそう。
```console
$ ls /etc/apt/sources.list.d/
ls /etc/apt/sources.list.d/
docker.list docker.list.distUpgrade google-chrome.list google-chrome.list.distUpgrade google.list google.list.distUpgrade
```
一旦そのまま進む。
### 更新前の確認
変更パッケージ数とサイズが明示される。
```console
Do you want to start the upgrade?
51 packages are going to be removed. 151 new packages are going to be
installed. 738 packages are going to be upgraded.
You have to download a total of 546 M. This download will take about
4 minutes with your connection.
Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.
Continue [yN] Details [d]
```
続行する。
### サービス再起動が必要なライブラリアップデート時の挙動
自動で再起動してもらって構わないので `Yes` を選ぶ。
![[Pasted image 20250118120106.png]]
> [!info] ChatGPT o1より
> これは Debian/Ubuntu 系の Linux ディストリビューションでライブラリ(たとえば libc や libpam、libssl など)をアップグレードする際に、関連するサービスを「自動的に再起動するかどうか」を聞いている画面です。これらのライブラリはシステムの土台となる部分なので、アップグレード後にサービスを再起動しないと不具合が起きたり、セキュリティの修正が反映されなかったりする可能性があります。
>
> 通常はアップグレードの途中で「このサービスを再起動していいですか?」といちいち尋ねられるのですが、この画面で「Yes」を選ぶと、該当サービスがあれば自動で再起動してくれるようになります。「No」を選ぶと、アップグレードのたびに対話的にサービス再起動の確認画面が表示されるようになります。
### パッケージ削除処理後のエラー
不要ファイルパッケージ削除の過程で一か所出た。
```error
Failed to restart systemd-binfmt.service: Unit systemd-binfmt.service is masked.
```
大した問題でないので静観。
## バージョン確認
```console
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
```
## 再起動
念のため再び[[WSL]]を再起動。
```console
wsl --shutdown
```
## 変わったこと
### terminfo
本対応の影響か分からないが、以下の問題が解消した。(回避策が不要になった)
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📝Neovimで波線(curly)や点線(dashed)といったテキスト修飾がただの下線になってしまう
</div>
<div class="link-card-v2-content">Windows Terminalが推奨するterminfoはxterm-256colorであるが、xterm-256colorには今回使用したいテキスト修飾定義がされていない。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/troubleshooting.webp" />
<a data-href="📝Neovimで波線(curly)や点線(dashed)といったテキスト修飾がただの下線になってしまう" class="internal-link"></a>
</div>
%%[[📝Neovimで波線(curly)や点線(dashed)といったテキスト修飾がただの下線になってしまう]]%%
再発リスクもあるので `owlterm-256color.src` の内容は記しておく。
```
owlterm-256color|xterm with 256 colors with decorations,
Smulx=\E[4:%p1%dm,
use=xterm-256color,
0Tbs, meml=\El, menu=\Em,
Cr=\E]112\007,
Cs=\E]12;%p1%s\007, E3=\E[3J, Ms=\E]52;%p1%s;%p2%s\007,
Se=\E[2 q, Ss=\E[%p1%d q,
XM=\E[?1006;1000%?%p1%{1}%=%th%el%;, kDC3=\E[3;3~,
kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~,
kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
kDN6=\E[1;6B, kDN7=\E[1;7B, kEND3=\E[1;3F, kEND4=\E[1;4F,
kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kLFT3=\E[1;3D,
kLFT4=\E[1;4D, kLFT5=\E[1;5D, kLFT6=\E[1;6D,
kLFT7=\E[1;7D, kNXT3=\E[6;3~, kNXT4=\E[6;4~,
kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~,
kPRV3=\E[5;3~, kPRV4=\E[5;4~, kPRV5=\E[5;5~,
kPRV6=\E[5;6~, kPRV7=\E[5;7~, kRIT3=\E[1;3C,
kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C,
kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A, kUP4=\E[1;4A,
kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A, ka2=\EOx,
kb1=\EOt, kb3=\EOv, kc2=\EOr, kp5=\EOE, kpADD=\EOk,
kpCMA=\EOl, kpDIV=\EOo, kpDOT=\EOn, kpMUL=\EOj, kpSUB=\EOm,
kpZRO=\EOp, rmxx=\E[29m, smxx=\E[9m,
xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
```
### watchexecを2.2系にアップデートできた
[[📜2025-01-13 miseのプラグインを公式リポジトリに移行する#watchexec (動かない)]]問題が解消した。libcが2.39になっている。
```console
$ apt list libc6
libc6/noble-updates,noble-security,now 2.39-0ubuntu8.3 amd64 [installed]
```
### クリップボードへのコピーできなくなった
[[wl-clipboard]]が上手く動かず、`wl-copy` などができなくなった。原因と解消方法は以下参照。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📝wl-clipboadが動かない
</div>
<div class="link-card-v2-content">WSLでwl-clipboardのコマンド (`wl-copy` など) が動かない。WSLのUbuntu 22をUbuntu 24に更新したあとから発生している。Failed to connect to a Wayland server: No such file or directory</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/troubleshooting.webp" />
<a data-href="📝wl-clipboadが動かない" class="internal-link"></a>
</div>
%%[[📝wl-clipboadが動かない]]%%