ひとりよがりのモバイルPC ( その4 AndroidでLinux環境を動かす3つの手法 )

AndroidでEmacs、Python pandasを使いたい!


キーボード付きのマシンを買ったのは、文書入力を前提としているわけですが、わたしの場合、それはEmacsを使うことを意味しています。これをなんとかしないと、導入目的を達成できません。
また、Emacsだけではなく、Pythonも使いたい。このマシン上で開発するつもりはありませんが、既存のスクリプトを動かさないと何もできません。標準ライブラリ以外では、pandasも必要不可欠。Python pandasを動かす、これが二番目の目標ですね。

EmacsやPythonは素のAndroidでは動きません。したがって、動作には何らかのツールを使い、Linuxに近い環境を作ることが求められます。AndroidはLinuxカーネルをベースに開発されていますので、相性は良いはず。すでに、Android上でLinux環境をサポートするツールはいくつか開発されています。2020年3月現在では、下記に紹介する3つのツールが代表的なものでしょう。


(1) Termux

https://play.google.com/store/apps/details?id=com.termux&hl=ja
SC-03G root

root化不要
「Terminalで、EmacsやPythonが使えればよい」ということなら、これが一番簡単です。
両者ともパッケージがあるので、コマンド一発で入ります。pandasはパッケージがないので面倒ですが、ライブラリの環境を揃えてから、pipで頑張ればたぶん入るでしょう。
(2021/01/09追記)
最近やってみたら、”pip install pandas”一発で入りました。Repositoryが整備されたのでしょう。素晴らしい。

日本語入力のサポートはありませんが、Androidの日本語入力が使えます。Emacsなら、SKKを使うほうが良いでしょう。SKKの解説は、こちらのサイトを見てください。

基本的にTerminalベースのものなので、X関係のプログラムは動きません
Python関係でいえば、「IPython Notebook(Jupyter)を使いたい」、なんていうニーズには答えられません。Termux上にUbuntuを起動してGUIをサポートする仕組みがあるようですが、root化なしでやるなら、次に紹介するUserLAndのほうが良さそうです。


(2) UserLAnd

https://play.google.com/store/apps/details?id=tech.ula&hl=ja
SC-03G root

root化不要
prootという特殊な手法で、疑似root化を実現しており、通常のLinuxとかなり近い環境を提供しています。ただ、prootには、それなりのオーバーヘッドがあるようなので、非力なマシンでは苦しいかもしれません。SC-03Gでは気にならないレベルでした。
ただ、いくつか問題もあるようで、動作しないプロダクトも散見するようです。

いずれにしろ、root化を完了しているSC-03Gでは、UserLAndは中途半端。あえてこれを使う必要はありませんね。


(3) Linux Deploy

https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy&hl=ja
SC-03G root

root化必要
これが大前提になります。root化できるマシンでないと実行できませんが、素のLinuxに近い環境が得られるはずです。少なくとも、prootを使っているUserLAndより速いことだけは間違いないでしょう。

今回はこのツールを使って、Linux環境を構築していくことにしました。詳細は次回以降に説明していきます。


試行錯誤からわかったこと

Linux Deployを実際に使ってみて、気がついたことがありますので、これを事前に記述しておきます。なお、テストはSC-03Gだけでなく、Nexus7(2013 root化済)でも実施しております。

ディストリビューションの選択

Linux Deployでは、何種類かのLinuxディストリビューションを選択することができます。

日頃、Ubuntuに慣れている方が選ぶのは、当然 “Ubuntu” でしょうが、ここは “Debian” を選択することを強くお薦めします。
これはあくまで私見ですが、Linux ARM系の場合、UbuntuよりDebianのほうが良く整備されているように思えます。
例えば、UbuntuではFirefoxが動きません。また、Python pandasも依存関係が崩れているので、aptでインストールすることができません。pipで順次入れていくことは可能ですが、膨大な時間がかかります。

このような問題は、Debianでは全く起こりません。UbuntuもDebianも使い方に大きな違いはありませんので、Debianの選択を推奨します。

Samsung GalaxyのKNOX

SC-03Gに導入したLinux(Ubunutu、Debian)では、sudo が動きません。
これは、Samsung Galaxyに採用されているKNOXというセキュリティシステムによるものでしょう。Linux DeployのIssues#224でも触れられていますね。Nexus7では何の問題もなく動きます。
このため、ディストリビューションインストール時のユーザー設定では、 “root” を指定しておかないと何もできません。このあたりは次回以降の記事で、再度記述する予定です。

「理想のモバイルPCからの転落く第二歩>」となりましたか(笑)。