Androidでドテン君
ドテン君で推奨されているAWS Cloud9ですが、いずれ有料になるので今のうちに自前で実行環境を持ちたく思い、色々試している中でAndroidでlinuxを動かせるtermuxなるものがあることを知り、試したくなりました。
この記事ではXperia A(Android 4.1)という機種をXperia ZR(Android6.0)化したものを使用しています。一般的ではないので記事通りやっても、他の機種では上手くいかないこともあるかと思います。(2018/04/20追記:中華スマホで動作確認しました。文末参照)
また筆者はpython・コーディングなどに関して初心者です。間違っているところ・理解していないところが多々あると思います。ご容赦ください。
実行は自己責任にておねがいします。
1.インストール
Playストアよりtermuxをインストールします。Android5.0以上必須です。
2.pythonとライブラリのインストール
起動するとターミナルの画面になります。まずはpythonからインストールしてゆきます。下記コマンドでpipもインストールされるようです。
$ pkg install python
続いてライブラリをインストールしますが、当初ccxtが上手く行きませんでした。
$ pip install requests
$ pip install pytz
$ pip install ccxt
ccxtのインストールでエラーメッセージが出て、導入できません。色々調べ下記5つをインストールすることでccxtの導入でエラーを出さず完走させられました。
apt install clang
apt install python-dev
apt install libxml2-dev
apt install libffi-dev
apt install libcrypt-dev
androidのエミュレータであるNOX6で上記と同じ事をしてもccxtのインストールが上手くいきませんでした。私のスキルではこれ以上問題を追求できませんでした。
3.androidの設定など
androidがスリープモードになるとtermuxも止まるようですので、STAY AWAKEというアプリをplayストアからインストールしました。このアプリの「ALWAYS STAY AWAKE」にチェックをいれてスリープを抑制します。
termux上で下記コマンドを入力することでもスリープ抑制できるようです。
$ termux-wake-lock
同様にhacker's keyboardもインストールしました。ターミナルの操作は標準キーボードでは困難でした。
4.SSHでWindowsと接続
SSHでPCから操作できるようにします。スマホでの操作は慣れないとむずかしいです。私はWindowsからTeraTermで接続しました。
先ず、ストレージの設定。androidの内部ストレージにシンボリックリンクを作成してアクセスします。(この説明が正しいのかよくわかりませんが)
https://wiki.termux.com/wiki/Termux-setup-storage
$ termux-setup-storage
そして、termuxにSSHをインストールします。
$ apt install openssh
更に、鍵の生成。保存するディレクトリを聞かれますが、デフォルトで良いのでそのままエンターを押しました。パスフレーズも聞かれましたが、空のままエンターで進めました。
$ ssh-keygen
権限付与など。
$ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
鍵をストレージにコピーします。permission deniedとエラーが出ましたが、androidを再起動するとコピーできました。謎。
$ cp ~/.ssh/id_rsa ~/storage/downloads/
android端末をPCに接続して、内部ストレージのDownloadsフォルダを見るとid_rsaファイルが……ないので、再度再起動すると見えるようになりました。謎。このファイルを後ほどTeraTermに読み込ませます。
androidのIPアドレスは下記コマンド確認しておきます。
$ ip -4 a
SSH起動は下記コマンドで。
$ sshd
PCでTeraTermを立ち上げ、IPアドレスとポート(8022)を入力。バージョンはSSH2、プロトコルはUNSPECです。
OKを押すとSSH認証のウインドウが開きますので、「RSA/DSA……」を選択し、秘密鍵ボタンからid_rsaを選択。OKボタンを押すと接続できるはずです。
5.ファイル作成と実行
ここまできたらcloud9と同様の手順で実行まで持っていけるはずです。
$ touch dotenkun.py
$ touch dotenkun.sh
$ chmod 755 dotenkun.py
$ chmod 755 dotenkun.sh
エディタはvimを使いました。
$ apt install vim
$ vim dotenkun.py
$ vim dotenkun.sh
ソースコードをそれぞれコピーして最後に
$ ./dotenkun.sh
2018/04/20追記:中華スマホX5max_PROで上記内容をほぼ確認できました。ただ、なぜか./dotenkun.shすると下記のエラーが出ました。
/usr/bin/python: bad interpreter: No such file or directory
仕方ないので、下記コマンドで表示されるパスにシェバンを変更することで回避しました。
$ which python
/data/data/com.termux/files/usr/bun/python
この記事が気に入ったらサポートをしてみませんか?