Android でもとりあえず Ubuntu のデスクトップ環境を使いたい（Termux 版）

## はじめに

先に公開した Android Studio を使うための最低限のデスクトップ環境の構築方法を記載します。
日本語入力もありませんが、その代わり最短で構築できると思います。

→ デスクトップ環境で日本語入力の設定手順を記載しました。
[Android でもとりあえず Ubuntu のデスクトップ環境を使いたい（Termux 版 - デスクトップ環境で日本語入力）](https://qiita.com/tacchi/items/cd2fdf36081277aa57b5)

## 注意点

デスクトップ環境（LXDEやXfce）のインストールは数時間かかります。
時間を確保してから実施するほうが良いと思います。

## インストール

Play ストア で Termux と XSDL をインストールしてください。
Termux は Linux という OS の一種が動作する環境になります。
Android も OS ですので、OS の上で OS が動作するという、ちょっとややこしい環境になります。
XSDL はデスクトップ画面を担当するアプリケーションです。
Termux はコマンドラインまでしかサポートしませんので、XSDL でデスクトップ画面をサポートしてもらいます。

## Termux の設定

Termux を起動して、以下のコマンドでパッケージ（Linux アプリケーションの倉庫のようなもの）を更新してください。

```

# パッケージのアップデート
pkg upgrade

```

pkg は apt コマンドのラッパーとのことです。
apt コマンドはパッケージを操作するためのプログラムを指します。
Termux では基本的に pkg を使用してアプリケーションのインストールを行います。

続いて、termux-setup-storage を実行して Termux と Android の間でファイルのやりとりをできるようにします。

```

# Android で扱っているファイルを Termux からも扱えるようにする
termux-setup-storage

```

Termux がアクセスして良いかと聞くダイアログが出ますので、OKを選択して下さい。

Termux と Android のディレクトリの対応を記載します。
ファイルの受け渡しなどの参考にしてください。

| Termux | Android |
| --- | --- |
| /data/data/com.termux/files/home/storage/shared/ | （本体 側）/sdcard/ |
| /data/data/com.termux/files/home/storage/downloads/ | （本体 側）/sdcard/Download/ |
| /data/data/com.termux/files/home/storage/external-1/ | （SD Card 側）/storage/(SD Cardの名前)/Android/data/com.termux/files/ |
| /storage/(SD Cardの名前)/ | （SD Card 側）/storage/(SD Cardの名前)/ |

## Ubuntu のインストール

続いて Termux に Ubuntu の環境を構築します。
Ubuntu も OS の一種になります。
Termux という Linux の上に Ubuntu という Linux を構築するという、Linux の上に Linux を載せるという形になります。
公式サイトのやり方ではありませんが Ubuntu をインストールする方法が載っています。
今回はこちらの方法を使用させてもらいます。
以下のサイトで、Installation steps と書かれている箇所のコマンドを実行して下さい。

https://github.com/MFDGaming/ubuntu-in-termux

Ubuntu と Android のディレクトリの対応を記載します。
ファイルの受け渡しなどの参考にしてください。

| Ubuntu | Android |
| --- | --- |
| /sdcard/ | （本体 側）/sdcard/ |
| /storage/(SD Cardの名前)/ | （SD Card 側）/storage/(SD Cardの名前)/ |

以下の公式サイトに Ubuntu のインストール方法が書いてあるのですが、SD Card などの Android とのファイル共有の方法が分からなかったため、今回は使用しません。

https://wiki.termux.com/wiki/Ubuntu

## Ubuntu の起動

先述のサイトの Installation steps の 10.Now just start ubuntu: に記載がありますが、Termux から Ubuntu を起動するコマンドを記載します。

```

cd
cd ubuntu-in-termu
./startubuntu.sh

```

## Ubuntu デスクトップ環境のインストール

ここからは Ubuntu での操作になります。

まずは apt でパッケージを更新します。

```

apt update
apt upgrade -y

```

次にデスクトップ環境をインストールします。
調べた限りでは、LXDE, Xfce の２種類が使えます。
LXDE の方が軽いそうですが、Xfce の方が見た目が良くLXDE程ではないですけれども十分な軽さを持っているそうです。
ここは好みで選択すれば良いと思います。

なお、ここでネットワークやスマートフォンの速度にもよると思いますが数時間掛かります。
後述の設定は、最初や最後ではなく（やや後ろの方ではありますが）途中で出てきます。
お勧めはインストールを開始して数時間放置し、設定を行ってからまた数時間放置するやり方です。

・ LXDE のインストール

```

apt install -y lxde
# 途中で地域の質問があるので 6 → Enter → 79 → Enterという操作で選択する。数字の意味は、6:Asia、79:Tokyo　となる。
# 次にキーボードの質問があるが、 31 → Enter → 1 → Enterという操作で選択する。数字の意味は、31:America(US)、1:English(US)　となる。ここは好みだが ソフトウェアキーボードの人は、 Hacker's Keyboard を使うので、この選択が間違いがないと思われる。
# デスクトップマネージャである gdm3 と lightgdm を選択するように言われるが、特にこだわりがないなら軽い lightgdm を選択すれば良いと思われる。

```

・ XFCE のインストール

```

apt install -y xfce4

```

### 環境の設定

XSDL を立ち上げてしばらく待って下さい。
最後なにやら文字列を表示している画面が出るので以下をメモしてください。

上から２行目に以下の文字列が出るはずです。DISPLAY のポート番号をメモしてください。

export DISPLAY=（何かのIPアドレス）:（ポート番号）

上から３行目に以下の文字列が出るはずです。同様に PULSE_SERVER のポート番号をメモしてください。

export PULSE_SERVER=（何かのIPアドレス）:（ポート番号）

IPアドレスはメモする必要はないです。
再び Termux の Ubuntu に戻って下さい。
XSDL に接続するために、設定ファイルに先程メモしたポート番号とローカルのIPアドレスを記載します。

```

# テキストエディタ vim をインストールしていない人はインストール
apt install -y vim

# .bashrc にXDSLの接続設定を記載する
cd
vim .bashrc

```

.bashrc の一番下辺りにでも、以下を記載して下さい。

export DISPLAY=:（さっきメモした DISPLAY のポート番号）
export PULSE_SERVER=127.0.0.1:（さっきメモした PULSE_SERVER のポート番号）

vim の操作方法を知らない人は以下だけ覚えればなんとかなります。

| キーボードのキー | 役割 |
| --- | --- |
| i | コマンドモードから入力モードに入る |
| ESC | 入力モードを抜けてコマンドモードに戻る |
| :wq | 保存して終了する。コマンドモードで操作すること。 |

今回に限り、先程記載した設定を手動で実行します。
次回からは自動的に実行するので以下の操作は不要になります。

```

source .bashrc

```

## デスクトップ環境の起動

まず、XSDLを立ち上げてください。先程のポート番号等が出る画面まで待ちます。
次に、Termux に戻り、Ubuntu の上で以下のコマンドを実行します。

・ LXDE の場合

```

startlxde

```

・ Xfce の場合

```

startxfce4

```

XSDL に戻り、しばらく待つと Ubuntu のデスクトップ環境が立ち上がるはずです。

この辺りはボタン一発でデスクトップ環境が立ち上がる UserLAnd の方が楽ですね。

## 参考サイト

[Android で動く Linux 環境 UserLAnd が XServer XSDL に対応](https://wlog.flatlib.jp/archive/1/2019-2-9)

[通勤中のTermuxでおすすめの兵法](https://qiita.com/v2okimochi/items/89eb26a8c69105914604)

[AndroidタブレットにUbuntuをインストールする](https://qiita.com/yetanothersu/items/152b96c6f59561800d07)