Linuxmint22へ懲りずにmintupgradeでアップグレードした時にpythonのupdate-alternativesを使っていて詰んだりzip圧縮できなくて嵌ったり

## ハマったとこSummary

- mintupgradeの途中にlibdvd-pkgで止まる
- pythonのupdate-alternativesを使っていてdeadsnakes版のpython3.12(バージョン3.12.5)が入っていると**ガチで詰む**
- zip圧縮がbuffer overflowで**使えなくなっている**(ちなみにubuntu24.04由来)

---

## mintupgradeの前に必ずやっておくこと

pythonのバージョン切り替えにupdate-alternativesを使っていて、
python3.12をdeadsnakes版のpython3.12(バージョン3.12.5-1+jammy1)にしていた時に、
アップグレード完了後しっかり詰みました。
アップグレードする前に、python3.12を公式バージョンの(python3.12=3.12.3-1ubuntu0.1)に戻しましょう(申し訳ないですが戻せるのかは分かりません)

## 懲りずにmintupgradeする

Linuxmint22が出ていたようなので、Linuxmint21.3からmintupgradeでアップグレードしました。
クリーンインストール後の設定が大変なので...



## mintupgrade時のエラー

#### 1. libdvd-pkgで止まる

```shell
libdvd-pkg: Package libdvdcss2-1.4.3-1 was removed, stop processing...
```

#### 対処 1

- ctrl+cで止める
- `sudo dpkg-reconfigure libdvd-pkg`をタイプ
- 再度`sudo mintupgrade`する
- アップグレード完了後、また同じエラーが出たので、再度`sudo dpkg-reconfigure libdvd-pkg`する


## アップグレード完了後の問題

#### 2. deadsnakes版のpython3.12(python3.12=3.12.5-1+jammy1)を入れていて、ガチで詰む

あれ、xedが入ってない？mint22はまた変わったのかな？と思って調べたら、そんなことはないようで、`sudo apt install xed`しましたが、エラーで止まります。どうやらpython由来のようです。

linuxmintは、システム自体がpython3.12を使っており、公式版のpythonじゃないと依存するパッケージがインストールされないようです。ガーン。

エラーの様子
```
 libpython3.12-stdlib : 依存: libpython3.12-minimal (= 3.12.3-1ubuntu0.1) しかし、3.12.5-1+jammy1 はインストールされようとしています
 mintsources : 依存: python3-apt しかし、インストールされようとしていません
               依存: python3-gi しかし、インストールされようとしていません
               依存: python3-gi-cairo しかし、インストールされようとしていません
               依存: python3-pycurl しかし、インストールされようとしていません
               依存: python3-requests しかし、インストールされようとしていません
               依存: python3-repolib しかし、インストールされようとしていません
               依存: mint-common (>= 2) しかし、インストールされようとしていません
               依存: gir1.2-xapp-1.0 しかし、インストールされようとしていません
 python3 : 依存: python3.12 (>= 3.12.3-0~) しかし、インストールされようとしていません
 python3-zipp : 依存: python3-more-itertools しかし、インストールされようとしていません
 shim-signed : 依存: grub-efi-amd64-signed (>= 1.191~) しかし、インストールされようとしていません または
                       grub-efi-arm64-signed (>= 1.191~) しかし、インストールすることができません または
                       base-files (< 12.3)
               依存: grub-efi-amd64-signed (>= 1.187.2~) しかし、インストールされようとしていません または
                       grub-efi-arm64-signed (>= 1.187.2~) しかし、インストールすることができません
               依存: grub2-common (>= 2.04-1ubuntu24) しかし、インストールされようとしていません
```

Synapticから「バージョンの強制」で公式版をインストールしようとしても、インストールできません。

いろいろ詰んでしまいました...
<br />

すると、数日後思いつきまして、再度`mintupgrade`してみることにしました。

#### 対処 2

- 事前にアップデートマネージャーから、PPAのdeadsnakesを外し、キャッシュを再読込させます
- ターミナルから`sudo mintupgrade`しますと、なんだかいい感じに動き出してくれます
- 処理を待っていると「python3.12はダウングレードされます」的な表示がされるので、よろこんで処理を継続させます
- しばし待っておりますと、無事、アップグレードに成功しました表示が出たので、すかさず再起動します

再起動後、python3.12のバージョンを確認しますと、無事、公式版のpython3.12=3.12.3-1ubuntu0.1になっておりました。

すかさず、`sudo apt install xed`をしますと、無事、xedもインストールされました。

再度`mintupgrade`で正解でした。


## zipコマンドがbuffer overflowで使えない

#### 3. zip圧縮できない

```
*** buffer overflow detected ***: terminated


zip error: Interrupted (aborting)
/home/<USER>/...
```

なんですと。

どうやら、ubuntu24.04で採用されているzipのバージョン3.0-13が原因のようです。

ウムラウトがあると、buffer overflowになるとか書いてあったりします。

解決法としては、ubuntu22版のzip3.0-12を持ってくるか、
もしくは、ubuntu24.10版のzip3.0-14だったら動くようです。

ココを見ると
https://tracker.debian.org/pkg/zip
zip3.0-14はまだtestingのようですが、3.0-14を入れてみることにしました。


#### 対処 3
**以後自己責任で！**

- 以下のダウンロードから、自分のアーキテクチャのダウンロードを選びます
https://packages.debian.org/ja/sid/zip

- ダウンロードページから、debパッケージをダウンロードします

- ダウンロードしたパッケージをインストールします
`sudo apt install ./zip_3.0-14_XXXXXX.deb`

- パッケージマネージャが、無事上書きアップデートしてくれます

無事使えるようになりました。

**ほんとに自己責任でお願いします**


## 最後に

今回アップグレードはいろいろ手強く、まだこれからなんらかの問題が出るかもしれませんが、どのみちいつかアップグレードしないといけない事なので、早いうちにやってみましたよ。

**ほんとにほんとに自己責任で** 拝 m(_ _)m