Ubuntu on Termux : Androidにまともなターミナル環境を作る
前々から試行錯誤してたAndroidのターミナル環境作りが一段落したので, そのメモ. ようやく, まともに使える&使いやすい環境を作ることができた.
何をしたか, なぜしたのか
アプリ「Termux」上に, Ubuntuの仮想環境を作る. root化はしない.
Android上でUbuntuが動くので, 出かけ先にPCを持っていく必要があまりなくなる. 電車の中で, git commit
できる.
Termuxのインストール
Termux - https://termux.com/
まず, 大元となる端末はTermuxを用いる. 端末エミュレータでない理由は, Termuxはpkg
が使えるから.
TermuxはGoogle PlayやF-Droidよりインストールできる. (ここでF-Doridも挙げるのはHUAWEIユーザーだから…?)
特に特別なことをすることなく, インストールできる. ただ私の環境ではErrorでGoogle Playからインストールできなかったので, F-Droidよりインストールした.
Ubuntu仮想環境の構築
Termux上にUbuntuの仮想環境を導入する. 導入にはAnLinuxを利用するが, 導入に使うのは下のコマンドのみ. アプリに付属する他の機能が必要なければ, インストールせずに下のコマンドを実行するだけでも十分.
pkg install wget openssl-tool proot -y
hash -r
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Ubuntu/ubuntu.sh
bash ubuntu.sh
しばらくすると, 上のコマンドを実行したディレクトリに, start-ubuntu.sh
ができる. このシェルスクリプトを実行すると,
./start-ubuntu.sh
root@localhost:~#
Ubuntuが起動した! root化していないAndroid上でUbuntuが動いている. ちなみに, バージョンは,
root@localhost:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
...
Ubuntu 18.04 LTS (Bionic Beaver).
これでUbuntuが導入できた. ひと段落. ただ, まだ色々と気になるところがあったので, 整えていく.
諸々の設定
Termux側の.bashrcに追加
Ubuntuの起動はstart-ubuntu.sh
を実行する必要がある. しかし, 起動のたびにソフトキーボードでポチポチ入力するのは鬱陶しいので, .bashrc
で自動的に実行するように設定する.
echo "./start-ubuntu.sh" >> ~/.bashrc
これで, Termux起動のたびにすぐにUbuntuが実行する. ちなみに, Termux bashに戻りたいときは, exit
をする.
一般ユーザーの追加
Ubuntuを起動すると, rootとしてログインされる. しかし, 常にrootでいるのは少し怖いので, 一般ユーザーを追加する.
~# apt update
~# apt dist-upgrade
~# apt install sudo # sudoのインストール
~# adduser <user_name> # ユーザー追加(Passwordを設定)
~# gpasswd -a <user_name> sudo # 作成したユーザーをsudoグループに追加
~# echo "su <user_name>" >> ~/.bashrc # 自動的にログインするように設定
~# su <user_name> # 一般ユーザーにログイン
<user_name>@localhost:/root$
参考 : ubuntu ユーザを追加して sudo 権限をつける - Qiita
これで, 従来のUbuntuと同じようにsudo
が使えるようになる.
なお, これでsudo
が使えない場合は, visudo
で直接ユーザーを追加する. 本末転倒.
~# apt install vim # visudoにはvimなどが必要
~# visudo
...
root ALL=(ALL:ALL) ALL
<user_name> ALL=(ALL:ALL) ALL #追加
...
参考 : How to Fix “Username is not in the sudoers file. This incident will be reported” in Ubuntu
以降, 全てsudo
を用いて設定をする.
fishのインストール
fish
をインストールする. 標準のbash
でも十分に使えるが, fish
だと強力な補完機能があり, Androidでポチポチ使うにはこちらのほうが便利.
sudo apt-get install apt-file # apt-add-repositoryを使うための準備
sudo apt-file update
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:fish-shell/release-2
sudo apt-get update
sudo apt-get install fish # fishのインストール
echo "fish" >> ~/.bashrc #自動的にfishを起動
fish
~>
参考 : 自宅のubuntu-16.04マシンのシェルをfishに変更した - takapiのブログ
fish
のインストールには数分かかる. Shellの変更は通常chsh -s /usr/bin/fish
だが, なぜかエラーが出た. なので, ~/.bashrc
に追加して間接的に起動する.
gitのインストール・設定
本命, git
のインストールが, 普通のUbuntuでのgit
のインストールと何ら変わない. ラクチン.
sudo apt install git
ssh-keygen #Password設定あり
cat ~/.ssh/id_rsa.pub
表示された公開キーをコピペし, Github等のサイトのSSH keys設定に貼り付ける.
参考 : GitHubの初期設定(SSH接続からリポジトリへのpushまで) - Qiita
Androidからサイト開いて貼り付けるのがやりにくいので, 私はLINEで一人グループを作り, それで送信してPCで貼り付け作業を行った. スマホならではの使い方?
設定次第ではGUIも動かせるっぽい. けど, ここまでで既にストレージを圧迫し始めているのでやめておく. スマホ買い換えたい.
(追記 : 2019/8/25)
環境構築のやり直しをやりやすくするために1行にまとめた.
Ubuntuのインストール (終了後, 自動的に起動)
pkg install wget openssl-tool proot -y && hash -r && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Ubuntu/ubuntu.sh && bash ubuntu.sh && echo "./start-ubuntu.sh" >> ~/.bashrc && ./start-ubuntu.sh