Termuxでお手軽ポケットlinux開発環境(例えばnvim+golangが手元に)

  • 36
    いいね
  • 1
    コメント

sample

Termuxって

簡単にいえばsandbox内でパッケージ管理ツールとTerminalを用意してくれるお手軽linux環境です。

androidのrootを取らなくても素のandroidにtermuxをインストールするだけで

golangとか
python3とか
nodejsとか
phpとか

➜  ~ go version
go version go1.7beta2 android/arm64
➜  ~ python3 --version
Python 3.5.2
➜  ~ node --version
v6.3.1
➜  ~ php --version
PHP 5.6.23 (cli) (built: Jul  1 2016 16:20:41)

neovimとか

$ nvim --version
NVIM 0.1.5-dev

git とか

$ git --version
git version 2.9.2

がインストールできます

$ apt update && apt install python python-dev golang gcc nodejs php  git neovim

以下のコマンドを使うとoh-my-zshを入れることも出来ました

$ sh -c "$(curl -fsSL https://raw.github.com/skeevy420/oh-my-zsh/skeevy420-termux/tools/install.sh)"

つまり開発環境が手元に揃います
golangも動くので(ただしgccも入れないとリンクエラーが出る?)
pecoも入りますし。

勉強会に颯爽とAndroid端末とキーボードだけで乗り込んだらきっと注目の的です

ただし問題点も幾つか

sandbox内での動作なのでPATHがヘンです

PATH=/data/data/com.termux/files/usr/bin

/bin/sh固定を期待するスクリプトとか動かすのがちょっと面倒です

sshdも動くけどポートが8022

1024までのポートは使用禁止です。
sshdも常駐ではなく手元で起動する必要があります

sshd使用手順

PCにAndroidをつなぐなりpushbulletを使うなり、
自分の公開鍵をandroidのどこかにコピーします(sdカードとか)

以下のようにAndroidの画面をいじって公開鍵を登録します

$ cat /path/to/id_rsa.pub > ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ sshd

後はネットワーク経由でpcからsshで入るだけです

❯ cat ~/.ssh/config                                                                                                                                                                                                                                                      Host 192.168.11.15 freetel(192.168.11.15)
  HostName 192.168.11.15
  IdentityFile ~/.ssh/id_rsa
  Port 8022
  ForwardAgent yes

❯ ssh 192.168.11.15 

常駐アプリ系はうごかせない?

apacheとかはパッケージに用意されていませんでした。
goでサーバアプリを書いたら動きましたが
androidを放置しているといつの間にか止まっていました。

  • crontabは効かない

コマンドは用意されていますが反映はされないみたいです。

fish シェルは動かない?

足りないパッケージがあるみたいで動かせますが不具合があるようでした

以上です。visualStudioCodeを使ってきましたが
これをきっかけにvimの勉強をまた始めたくなってきました。
consoleって本当にいいものですね。