[後日談] ミニPCでUbuntu環境を構築

**※ これまでの足跡**
　[ミニPCでUbuntu環境を構築](https://qiita.com/b-wind/items/d5633ceb2158c17ec810)
　[Ubuntu トラブル（認証ダイアログが頻繁に出る）](https://qiita.com/b-wind/items/648a815c5d0bf5dc105c)
　[ubuntu トラブル（内部エラー発生ダイアログが出る）](https://qiita.com/b-wind/items/e429875f2c03bc8905fb)

### やはり再インストール
その後も、何かとトラブルが発生して嫌気が指してきました。
こういう時は やはり「再インストール」するに限ります。

そんな訳で同じインストーラーを使ってクリーンインストールを実施したところ、初回時の「[日本語の設定でハマる](https://qiita.com/b-wind/items/d5633ceb2158c17ec810#%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%83%8F%E3%83%9E%E3%82%8B)」が発生することなく、無事にインストールが完了してしまいました。
謎ですが、今回はインストール途中で「インストーラの更新」が１回実施されました。
これが関係していたのかもしれません。

### Windows からの RDP 接続
Windows からの接続ということで 安易に xrdp を導入したことが、前回 トラブルの沼にハマり込んだ原因でしょう。
そして 案の定、今回もハマります。

## xrdp のインストール
下記サイトを参考に、インストールを進めました。
　[Ubuntu 24.04でのリモートデスクトップ接続方法](https://www.genspark.ai/spark/ubuntu-24-04%E3%81%A7%E3%81%AE%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E6%8E%A5%E7%B6%9A%E6%96%B9%E6%B3%95/b0eeb833-8bf8-4e09-91bb-666f5237c20d)

### ① xrdpのインストール
以下のコマンドを、順に実行しました。
``` bash
sudo apt-get update
sudo apt-get upgrade
sudo apt install xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
```

### ② ファイアウォールの設定
以下のコマンドを順に実行した後、PCを再起動しました。
``` bash
sudo ufw allow 3389
sudo ufw status
```

### ③ デスクトップ設定の変更
ここまでの状態で Windows から RDP接続してみたところ、ローカルログイン時と違ってデスクトップに「サイドバー」が表示されませんでした。
すると、下記サイトに「そのものズバリ」の対処方法が記載されていました。
　[Ubuntu20.04にXRDP接続した際に起きた問題についてのまとめ](https://kashiwaba-yuki.com/linux-trouble-ubuntu-rdp)
 
```~/.xsessionrc``` というファイルを作成し、以下の内容を記述しました。
```conf
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
```

## トラブル発生①
Windows から RDP接続してみたところ「**デスクトップ全体が真っ黒**」に。
「<font color="red">**またか (怒)**</font>」と思って 小一時間 ほど放置したところ、なんと認証ダイアログが表示されたではありませんか。

ChatGPT 併用で調べて対応を図ったところ、解決に至りました。
以下は 実際に実施した内容です。
（**試行錯誤しすぎて、その過程は もう語る気も起きません**）

### ① xrdp を ssl-cert グループに追加
```bash
sudo usermod -aG ssl-cert xrdp
```

### ② xrdp.ini 修正
```bash
sudo nano /etc/xrdp/xrdp.ini
```
```ini
[Globals]
security_layer=negotiate
crypt_level=high
certificate=/etc/ssl/certs/ssl-cert-snakeoil.pem  <-- この行を追加
key_file=/etc/ssl/private/ssl-cert-snakeoil.key 　<-- この行を追加
```

### ③ xrdp 再起動
```bash
sudo systemctl daemon-reload
sudo systemctl restart xrdp
```

## トラブル発生②
RDP接続が可能となったのもつかの間、今度は<font color="red"> **ログインしてから数分後に必ず「Wayland or Xwayland」がクラッシュ（SIGABORT）** </font>するようになってしまいました。

以下、対処した内容だけ記載しておきます。

### ① クラッシュレポートの権限変更
これは問題に対する根本的な対処ではないと思いますが、「Xwayland」がクラッシュしなくなったので 一応記述しておきます。
```bash
sudo chmod 644 /var/crash/_usr_bin_Xwayland.120.crash
```

### ② xrdp 経由でのログイン時のみ waylandを無効化
```xrdp_no_wayland.sh``` を新規に作成します。
```bash
sudo nano /etc/profile.d/xrdp_no_wayland.sh
```
ファイルの内容は次の3行のみ。
```conf
if [[ "$XDG_SESSION_TYPE" == "x11" ]] || [[ "$XDG_SESSION_TYPE" == "wayland" && -n "$XRDP_SESSION" ]]; then
    export XDG_SESSION_TYPE=x11
fi
```

実行権限を付加しておきます。
```bash
sudo chmod +x /etc/profile.d/xrdp_no_wayland.sh
```

### ③ 適用されたかどうかの確認
一度 PCを再起動した後、RDP接続します。
ログイン後に「$XDG_SESSION_TYPE」の内容を確認します。
（"x11" と表示されれば OK）
```bash
$ echo $XDG_SESSION_TYPE
x11
```
念のため、ローカルログインでも確認してみます。
```bash
$ echo $XDG_SESSION_TYPE
wayland
```

## 現在の状況
丸一日、放置してから RDP 接続。
その後 １時間ほど放置しましたが、「真っ黒画面」や「Wayland/Xwayland のクラッシュ」という現象は発生しませんでした。
トラブル続きでしたが、どうやら本当に問題は解決したと思われます。

これで、やっと「Docker + Dify」のインストールを進められる…