連休中にWSL2とHyper-VのLinuxディストリビューションで遊びました

# 要旨
Ubuntuは、WSL2とHyper-VのデフォルトのLinuxディトリビューションです。ネット情報もUbuntuの情報が圧倒的に多いです。
導入のしやすさ（特にNvidiaなどのプロプライエタリソフトの利用）ではUbuntuだと思いますが、DebianやAlmaLinuxなど、他のディストリビューションの方が良いと思われるケースもあります。
- 配布用としてファイルサイズを小さくしたい場合: インストール後にアップデートした状態でDebian、AlmaLinux、ArchLinuxでは600MB～800MBです。Ubuntuでは約2GBになります
- 安定性を重視する場合：Ubuntuでは、頻繁にセキュリティアップデートだけでなく機能追加のアップデートが入ります。Debain安定版、RHEL互換では、セキュリティアップデートのみです。また、パッケージの選定が安定性重視です（例えば、esr版ブラウザ）
### 備考
- 2007年にFedora 7をプリインストールしたCore 2マシンの購入記録がありました。それ以前からLinuxを使用していたので、Linuxは約20年の使用経験があります
- 2010年以前は、マイクロソフトとオープンソースは互いに批判的でした。Ubuntuの最初のバグ[Ubuntu Bugs#1: Microsoft has a majority market share](https://bugs.launchpad.net/ubuntu/+bug/1 "昔のUbuntuのフィロソフィーは、Debianに近かった: Our work is driven by a belief that software should be free and accessible to all.")は、Microsoft Windowsのシェアが高すぎることでした（スマホ・タブレットが普及し、2013年にFixされました）
- マイクロソフトは、2018年のGitHub買収などによりオープンソースへの支持を明確に示し、コンテナやクラウドなどで協調する時代に変わりました
- Flatpak、Snap、appimage、解凍するだけで動作するパッケージ、コンテナなどが普及し、古いOSであっても新しいアプリを動作させることが容易になりました。オープンソースの構造解析ソフト[Salome-Meca: Singularity container](https://code-aster.org/spip.php?article303 "2025年1月リリースの最新版はScibian11(Debiain+科学計算環境)で開発")は、Debian 11ベースで行われています
- 現在入っているWSLのディストリビューション（アイコンは、OSと使っているCAEソフトから選んでいます）
![スクリーンショット 2025-05-07 220006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/1f1cf8ef-5e58-4914-bd94-affd3b179773.png)


# 各種Linuxディストリビューション
#### Windowsターミナルから簡単にインストールできるもの
大まかにいえば、
- 通常版：Ubuntu-LTS、Debian安定版、Red Hat Enterprise Linux (RHEL) 互換、Suse系
- 開発版（≒ローリングリリース）：ArchLinux、Debian:Sid、openSUSE Tumbleweed、Fedora

```powershell
# 指定しなければ、現在はUbuntn-24.04LTSがインストールされます
wsl --install # Ubuntu (24.04LTS) 
 
 wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。
# Ubuntn-24.04LTS以外は
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
Debian                          Debian GNU/Linux
FedoraLinux-42                  Fedora Linux 42
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
archlinux                       Arch Linux
kali-linux                      Kali Linux Rolling
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-15.6              openSUSE Leap 15.6
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
```
## 1. Ubuntu
### 公式サイト*、公開情報
- Windows Subsystem for Linux (WSL)を使って、Windows上で完全なUbuntuターミナル環境のパワーにアクセス
- Webアプリケーション開発の効率化、最先端のAI/MLツールの活用、クロスプラットフォームアプリケーションの開発、ITインフラストラクチャの管理をWindowsのままで実現します。Nvidiaなどのプロプライエタリソフトの利用が容易なことが最大のメリット**
- 一般用途のLinuxとして、最も普及しているので、ppaなどUbuntu用しかない場合がある
- UEFI、 セキュアブートに素早く対応した。wslのSystemdについても素早く対応した
[The full Ubuntu experience, now available on Windows*](https://ubuntu.com/desktop/wsl "グラフィック環境が劣ると思う：Full experienceではない")
[CUDA Toolkit 12.9 Downloads**](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu "wslではUbuntuのみ")
### 気になる点（wsl版）
- "wsl --install"コマンドでインストールして、アップデートとしただけでストレージが約2GBになった（GUIや大型アプリなしで2GBは大きすぎると思う）
- Debianの安定版と比べて、アップデートが多い（ローリングリリースのsidよりは少ないが）
- パッケージのメジャーアップデートにより、壊れることがある。一つ前のLTS版（22.04LTS）において、データ可視化ソフトParaviewが壊れた
- デスクトップの種類により、フレバー名がつけられている（Xubuntu, Lubuntu, Kubuntu, ...）。特定のデスクトップを持たないwsl版の位置づけは？ サポート期間は？

### 気になる点（通常のデスクトップ版）
- デフォルトで使用されるのが、メジャーアップデートが続くHWEカーネル。しかし、HWEカーネルの恩恵を受けるユーザーは少ないように思われる（WSLのリリース版のLinux Kernelは5.15）。Debaianのbackportsのように必要な人が意識して導入するスタンスで良いと思う
- GNOMEデスクトップをUbuntuにカスタマイズしているので、Hyper-Vのxrdp拡張の画面はGNOMEになる。Ubuntuデスクトップ変えるのに一手間かかります
- アップデートするとUbuntu-Proを勧めてきます。初期のオープンかつフリーを重視する姿勢から、営利企業的な姿勢に変わった気がする

![Screenshot from 2025-05-07 16-32-27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/bdc4e19c-50b2-4142-801d-080314008101.png "Hyper-Vでの画面。Ubuntu設定をしないGNOMEデスクトップ。アップデートするとUbuntu-Proが表示される")


## 2. Debian
### 公式サイト
- Debian wslのインストール方法は、最新の簡略化された方法に更新されていませんが、マイクロソフトがCanonicalと協調して、WSL2にsystemd機能を加えたことを明記しており、好感を持てます*
- マイクロソフトのページが新しい方法です**
[Installing Debian On Microsoft Windows Subsystem For Linux*](https://wiki.debian.org/InstallingDebianOn/Microsoft/Windows/SubsystemForLinux)
[マイクロソフト：WSL を使用して Windows に Linux をインストールする方法**](https://learn.microsoft.com/ja-jp/windows/wsl/install)
### Ubuntuとの比較
- Ubuntuの上流がDebianなので、リポジトリから入るパッケージ数は同等
- 安定版は、重要なバグがフィックスされてからリリースされる。リリース後はセキュリティ・バグフィックスのみで機能追加は原則なし
- Ubuntuと比べて、依存関係で入るパッケージが少なく、カスタマイズがしやすい（インストール・アップデート後のファイル容量は、600MB）
### Ubuntuとの比較（通常のデスクトップ版）
- 10年前までは慎重・保守的であった（SATAサポート、UEFI対応、systemdへ移行、など）。現在でも保守的すぎるディストリビューションであると記載されていることが多いが、Ubuntuとの連携が向上し、新技術の導入が速くなった
- 昔はFirefox-esrをIceweaselに変えていたが、今はFirefox-esrのまま使用しています。さらに、不安定版（Sid）ではFirefox-esrとFirefoxの両方を利用できます
- 2023年リリースのDebian 12は、Ubuntu 22.04をより安定させたバージョンというくらいのイメージです
- GNOMEなどのライブISOメディアがありますが、ハードウェア対応の豊富さの面からUbuntuの方が優れています

## 3. Red Hat Enterprise Linux (RHEL)互換
Windowsターミナルからインストール可能なディストリビューションは、AlmaLinuxとOracleLinuxがあります。インストール・CAEソフトをコンパイルして、AlmaLinuxが無難だということがわかりました（OracleLinuxは/etc/wsl.confのファイルがなく、epelの設定が特殊でした）
### AlmaLinuxの公式サイト*
- マニアックな内容はありませんが、明るくわかりやすいサイトです
- githubの最新イメージのリンクも記載されています。最新イメージが必要なのは開発版のAlmaLinux-Kitten-10だと思います**
[AlmaLinux Wiki: Windows Subsystem for Linux*](https://wiki.almalinux.org/documentation/wsl.html#about-windows-subsystem-for-linux)
[AlmaLinux / wsl-images**](https://github.com/AlmaLinux/wsl-images/releases)

### Ubuntu / Debianとの比較
- 安定性とサポートを重視する業務サーバー用Linuxの定番。RHELのライセンスを抑えるため、有償版と無償の互換Linuxを併用する場合もある
- Debian系と違いが大きい（パッケージ管理などのコマンド、パッケージの名称、ライブラリの保存ディレクトリ、Systemdのデフォルト設定、などが異なる）ので、RHEL系でのインストール手順書がない場合に、手間がかかる
- FrontISTRのように、RHEL互換でのインストール手順書*** があれば、対応できる
- インストール・アップデート後のストレージ容量は、約800MB
- パッケージは、Debianと同様にセキュリティとバグフィックスのみで機能追加は原則なし（同じRed Hatが運営していても、Fedoraはセミローリングリリースのためバージョンアップが非常に多い）
[FrontISTR ver. 5.6 / CentOS7.6へのインストール手順例(cmake)***](https://manual.frontistr.com/ja/install/install_07.html)

## 4. Arch Linux
これまでは、GUIなしのコンソール（コピー＆ペーストができない端末）に、基礎的なコマンド操作によりインストールが必要で、初心者には高い壁になっていました。
wslではインストール済の環境ができているので、圧倒的に楽になりました。
### Arch Linuxの公式サイト*
- wslのアップデート方法に"pre-release"版の記載があり、最新に環境を提供するArch Linuxらしさがでています
- WSLgのグラフィック環境設定について、詳しく記載されています
[Install Arch Linux on WSL*](https://wiki.archlinux.org/title/Install_Arch_Linux_on_WSL)
### Ubuntu / Debianとの比較
- ほぼ最新のパッケージがインストールできます（Debian/Sidのパッケージも新しいですが、コンパイラや基幹パッケージについては慎重です）
- インストール・アップデート後のストレージ容量は約800MB
- パッケージをダウンロードするミラーサーバーは、[Pacman Mirrorlist Generator](https://archlinux.org/mirrorlist/)から日本のサーバーリストを作り、保存、ミラーをランク付けすることで、速いサーバーに切り替えることができます
```
sudo su - # root権限での操作が連続するので、スーパーユーザー権限にした
nano /etc/pacman.d/mirrorlist.generator # Pacman Mirrorlist Generatorの出力の貼り付け
sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.generator # rankmirrors でテストするミラー（全ての）をアンコメントする 
rankmirrors -n 6 /etc/pacman.d/mirrorlist.generator > /etc/pacman.d/mirrorlist
```
- パッケージが絶えず最新バージョンに更新されるので、タイミングによっては動かないアプリが出てきます。最新環境でのテスト用で、安定運用には向いていません

## 5. OpenSuse
緑のカメレオンが印象的なディストリビューションです。独自のGUI操作を加えられていて、GUIを充実させたことが特徴です
コマンド操作が主のWSLで、メリットがあるかどうかはわかりません
### OpenSuseの公式サイト*
- インストール・設定方法は、最新の簡略化された方法に更新されていません
- Systemd、WSLgの情報は更新されています。詳細はマイクロソフトのURLリンクを見るように書かれています。
[openSUSE:WSL*](https://en.opensuse.org/openSUSE:WSL)
[マイクロソフト：Advanced settings configuration in WSL**](https://learn.microsoft.com/en-us/windows/wsl/wsl-config)
## 気になる点
- インストール時にLocale, Keyboadlayout, TimeZoneを設定する必要があります。他のディストリビューションのように、Windowsの設定を利用して自動設定するようにしていれば、海外の人と直ぐに使えるWSLディストリビューションの共有ができると思われます（とりあえず、en_US.UTF8, WindowsKeys, UTCに設定しました）
- gnome-terminal, xfce4-terminal, thunar, mousepadをインストールしたときに依存関係で入るパッケージが多かった
- ストレージの使用量は、インストール・アップデート後に1GB、基本的なGUIアプリをインストールすると2.1GBになった（Ubuntuと同等）
- 多量の依存パッケージをインストールしても動かないGUIアプリが多かった
```
sudo zypper in -t pattern wsl_gui
sudo zypper in gnome-terminal # 動かなかった
sudo zypper in xfce4-terminal # 警告が表示されるが、動いた
sudo zypper in thunar mousepad # 動かなかった
```