Termux を素のまま使う方法は前回書いた。 パフォーマンスがいいのは素の状態なので、これで使えそうならこのまま使う方がいい。node, Python, C/C++ なんかは素のままでも十分使えるはずだ。
あまりサーバーとして使うこともなく、使うとしたらちょっとした開発だと思うので、3000/tcp あたりで node を使ったり、node や Python で使える静的 HTTP サーバー (http-server とか)で事足りることが多いと思うが、ちょっとコンテナ的なものを使いたいこともある。
こうした場合は、proot, proot-distro を使うと便利である。
proot-distro を使って、 Ubuntu を使う方法などは、さまざまな方法で紹介されているので、ガッツリ使う人は情報に事欠かないと思うが、私は軽めに使う方法がおすすめである。
Ubuntu 環境を作ったうえで、Docker もどきを入れる方法などもあるが、そこまでやっても本物の Docker ではないし、重いので、素の状態で工夫するか proot-distro でサーバー単位で導入するのがいい。
proot はディレクトリ構成のみを仮想化 (システムコールをフックして書き換えてしまう) する方法で、Docker 等と違いカプセル化されているわけではない。 あくまでパスがユーザーモードの世界で相対的にルートから構築できるだけで、CPU や TCPポートなどといったシステム資源は、下層の Android と共有になる。当然、ルートを取っていなければ、1024番未満の TCPポートを開いたりはできない。
proot, proot-distro のインストールは
1 | pkg update |
で入る。pkg で proot-distro も入るが非常にバージョンが古く DockerHub が使えないので、お勧めしない。
proot-distro は DockerHub からアーカイブを拾ってきてくれて、展開してくれる便利なユーティリティーである。 カプセル化とか、TCPポートや、ディレクトリの割り当てをしてくれたりはしないので、イメージを拾ってきて展開したら、基本的には、その中の設定ファイルを書き換えて使う。
proot-distro は短縮形があり
| 標準 | 短縮形 |
|---|---|
| proot-distro | pd |
| proot-distro install | pd i |
| proot-distro run | pd run |
| proot-distro login | pd sh |
| proot-distro list | pd ls |
| proot-distro ps | pd ps |
| proot-distro kill | pd kill |
| proot-distro remove | pd rm |
| proot-distro clear-cache | pd cl |
等が使える。
例えば、DockerHub から NGINX を拾ってきて起動するには
1 | pd i nginx |
もしくは
1 | pd i nginx |
などとする。
必要なくなったらpd rm nginxで削除できる。
ネット上の例では、Ubuntu でフル環境を作っている例が多いが、ちょっとサーバーを動かしたり、サンドボックス的(全然なってないけど)な環境を作りたいだけなら、nginx のようなサーバーのみのパッケージや、alpine あるいは debian のような小規模のパッケージを使った方がおすすめである。
前回の記事にも書いたが、Kernel は Android のものがそのまま使われるので、例えば Android 14 くらいなら Debian bookworm くらいの世代に合わせた方がいいと思われる。



