Ubuntu Server 24(minimized) に LXDE を入れてみた


Ubuntu で何気に `apt search lxde` と打ってみたら、いくつかヒットすることを発見しました。気になって Wikipedia で LXDE のページ https://ja.wikipedia.org/wiki/LXDE を見てみたところ、最終更新は 3 年前みたいなものの、開発は継続しているぽいようなことが書かれていることがわかりました。

これは試してみたい！

せっかくなら Ubuntu に LXDE をインストールして切り替えるんじゃなくって、 CLI ベースの Ubuntu に LXDE だけをインストールして動かしてみたい！

てな話です。

## さぁはじめよう
まずは CLI ベースの Ubuntu ですが、思いついたのが Ubuntu Server と WSL の Ubuntu くらいなので、今回は Ubuntu Server をベースに構築してみようと思います。 Server との名前がついているのでサーバー用途な OS な気はするんですが、細かいことは気にせずに進めたいと思います。

## Ubuntu Server のインストール
Ubuntu Server 24 のブートイメージを作成して、ブートしてインストールを進めます。次々と進めていけばインストールできるんですが、今回は以下の個所を変更しています。
- キーボードレイアウトは日本語 → 「 Keyboard configuration 」のところで「 Layout 」と「 Variant 」を「 Japanese 」に変更
- 最小限構成でインストール → 「 Choose type of install 」のところで「Ubuntu Server (minimized)」を選択 ※`vi` すらインストールされないというウワサで興味深々だけの理由です
- LVM は使わない → 「 Guided storage configuration 」のところで「 Set up this disk as an LVM group 」のチェックを外す。※サーバーじゃないし程度の理由です
- SSHを有効化 → 「 SSH Setup 」の「 Install OpenSSH server 」にチェックを入れる。

## それではパッケージを、、、でもせっかくだから、、、
OS のインストールはトラブルもなく完了できたので、次は必要なパッケージのインストールとなるんですが、せっかく最小限構成でインストールしたので、それを引き継いでこの先も推奨パッケージをインストールしないオプション `--no-install-recommends` でインストールしていきたいと思います。※設定すればデフォルトを `--no-install-recommends` にできますが、今回は明示的に入力する形にしています。

## LXDE のインストール
以下のコマンドで LXDE をインストールします。

```bash:LXDEのインストール
sudo apt update
sudo apt -y --no-install-recommends install lxde
```

インストールが完了したら再起動して GUI のログイン画面が出ることを期待して待ちます。

## あれ？GUIのログイン画面にならない
いつまで待っても GUI のログイン画面にならないようです。ディスプレイマネージャーがインストールされないみたいなのでインストールして再起動してみます。

```bash:ディスプレイマネージャーのインストール
sudo apt -y --no-install-recommends install sddm
```

とりあえずログイン画面が GUI にはなりました。

![VirtualBox_Server24lxde_19_02_2025_18_52_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128670/c68b424b-9d7a-4e7a-9d83-633c038a8b85.png)

## 設定アプリ
メニューをぱっと眺めてみると、 Openbox の設定とか light-locker の設定アプリがないみたいです。設定ファイルをいじればできそうな気もするんですが、 GUI の方が楽なので、とりあえずその２つをインストールします。

```bash:Openboxとlight-lockerの設定アプリのインストール
sudo apt -y --no-install-recommends install obconf light-locker-settings
```

ちなみに obconf は Qt 版の　obconf-qt っていうパッケージも存在しているんですが、メニューで見ると obconf は「 Openbox Configuration Manager 」と表示されて、 obconf-qt は「 Openbox Settings 」と表示されるようです。

## テーマをチェンジ
Clearlooks とダークテーマが好きなんですが、残念ながらどっちも入っていないのでインストールします。今回は Clearlooks-Phenix とダークテーマである Adwaita-dark をインストールします。
```bash:テーマのインストール
sudo apt -y --no-install-recommends install clearlooks-phenix-theme gnome-themes-extra-data
```

インストールできたら「Customize Look And Feel」と「 Openbox Configuration Manager 」で変更します。

## アイコンをチェンジ
インストールされているアイコンは以下の８つようです。
- Adwaita
- Humanity
- Humanity-Dark
- LoginIcons
- Ubuntu-Mono-Dark
- Ubuntu-Mono-Light
- nuoveXT.2.2

ただ、よく見てみると「 nuoveXT.2.2 」以外のアイコンが正常に表示されてないようです。どうも「 nuoveXT.2.2 」のアイコンは PNG 形式で、それ以外は SVG 形式を使用しているものあるのが原因ぽいです。

調べてみたところ「 librsvg2-2 」のライブラリはインストールされていましたが「 librsvg2-common 」がインストールされてないようでしたので以下のコマンドでインストールして再起動してみます。

```bash:librsvg2-commonのインストール
sudo apt -y --no-install-recommends install librsvg2-common
```

無事表示されたようです。

## リムーバブルメディアが自動マウントされない
リムーバブルメディアを挿入しても自動マウントされないようなので、それらしいパッケージをインストールしてみます。

```bash:リムーバブルメディアが自動マウントされないの対応
sudo apt -y --no-install-recommends install gvfs gvfs-backends gvfs-fuse
```

gvfs に関連しそうなものってだけで、それぞれの意味はよく分かってないんですが、なんかマウントされるようになったので良しとしたいと思います。

## 日本語環境のインストール
日本語環境をインストールしようと `check-language-support -l ja` を実行したところ check-language-support コマンドがないと言われましたのでインストールしてから日本語環境をインストールします。`check-language-support -l ja` には一部含まれていない IBus 関連のパッケージがあるようでしたので、明示的に含めています。

```bash:日本語環境のインストール
sudo apt -y --no-install-recommends install language-selector-common locales
sudo apt -y --no-install-recommends install $(check-language-support -l ja) ibus-gtk ibus-gtk3 ibus-gtk4 im-config
```

ついでにタイムゾーンも日本にして、念のため再起動しておきます。
```bash:タイムゾーンを日本に変更
sudo timedatectl set-timezone Asia/Tokyo
```

## Firefox
Ubuntu では Firefox が snap パッケージに移行してるみたいで、apt でインストールしても実際には snap 版が導入されるようです。一方で、Firefox 公式の「[Install Firefox on Linux](https://support.mozilla.org/en-US/kb/install-firefox-linux)」には、snap 版を含むいくつかのインストール方法が紹介されています。今回はその中で推奨となっているぽい .deb からのインストールを参考にしながらインストールしてみたいと思います。


```bash:Firefoxのインストール
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}'
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla 
sudo apt update && sudo apt -y --no-install-recommends install firefox
```

これだけだと、更新があった際に snap 版に変わってしまうことがあるみたいなので、それを抑止します。
```bash:snap版Firefoxを抑止
echo '
Package: firefox*
Pin: release o=Ubuntu*
Pin-Priority: -1
' | sudo tee /etc/apt/preferences.d/firefox-no-snap
echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
```

## ディスプレイドライバー
正直必要かどうかはよく分からないんですが `apt search xserver-xorg-video` ってするとたくさん表示されるので、自分の環境にあわせたディスプレイドライバーいれた方が良いことありそうな気もします。 `sudo apt install xserver-xorg-video-all` としてざっくりとインストールすることもできるみたいです。

## 全部まとめるとこれです
結果的に ssh で接続して以下をコピペすればよさそうです。改めてみてみると Firefox の部分が多いので、すなおに snap 版使っとけば 4 行程度で済んだようですね。
```bash:全部まとめてGO（ディスプレイドライバーなし）
sudo apt update
sudo apt -y --no-install-recommends install lxde sddm obconf light-locker-settings clearlooks-phenix-theme gnome-themes-extra-data librsvg2-common gvfs gvfs-backends gvfs-fuse language-selector-common locales 
sudo apt -y --no-install-recommends install $(check-language-support -l ja) ibus-gtk ibus-gtk3 ibus-gtk4 im-config
sudo timedatectl set-timezone Asia/Tokyo

#Firefox
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}'
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla
echo '
Package: firefox*
Pin: release o=Ubuntu*
Pin-Priority: -1
' | sudo tee /etc/apt/preferences.d/firefox-no-snap
echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
sudo apt update && sudo apt -y --no-install-recommends install firefox
```

## こんなです
その他カスタマイズをした結果、以下のような感じとなりました。良い感じです。
![VirtualBox_Server24_28_02_2025_20_08_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128670/652a5423-fde6-4650-8845-fb1c28ecb8b1.png)

## おまけ
minimized 構成で実際に使ってみると `vi` どころか `ping` も `man` も使えないようで、 `man` と打つと以下のようなメッセージが表示されます。

```bash:manと打った結果
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, including manpages, you can run the 'unminimize'
command. You will still need to ensure the 'man-db' package is installed.
```

`sudo unminimize` とすれば解決なんですが、`man` も含めて `vi` 等々もインストールされるみたいです。 `unminimize` コマンドはシェルスクリプトで `cat /usr/bin/unminimize` とすれば簡単に中身を見ることができるので、 `man` を使いたいだけなら、そのスクリプトのなかから関係するところだけを取り出すっていう手もあるかなと思います。

ちなみに `ping` は iputils-ping パッケージをインストールすれば良さげな感じです。