ひとりよがりのモバイル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
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
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
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からの転落く第二歩>」となりましたか(笑)。