Go言語(golang)でTUIアプリを作ろう 第二部入魂編 ( その7 様々な環境でListDBGを動かす )
前回説明したクロスコンパイル環境で作成したプログラムを、実際の環境で動かしてみましょう。
(1) Raspberry PI
まずは、Raspberry PI。購入したのは2014年ですから、Raspberry Pi 1Bでしょう。現在もファイルサーバーとして無休で活躍中。今年(2022年)で丸8年目を迎えます。
下記の情報を見ると、2017年にOSを入れ直しているようなので、そこからでも5年経過しています。ハードな使い方はしていませんが、それでもそのアベイラビリティーには感心します。
$ uname -a
Linux raspberrypi 4.9.41+ #1023 Tue Aug 8 15:47:12 BST 2017 armv6l GNU/Linux
$ cat /proc/version
Linux version 4.9.41+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1023 Tue Aug 8 15:47:12 BST 2017
このマシンの片隅を借りて、動作テストをしてみます。まずは、開発マシン上でクロスコンパイルしておきます。
make build-arm6
makeで生成したlistdbg_arm6.tgzを適当なディレクトリにコピー。sshで接続し、下記のコマンドで解凍します。
$ tar xzvf listdbg_arm6.tgz
listdbg_arm6
loaddb_arm6
csv/
csv/bookoff_tokyo.csv
csv/anthology.csv
csv/eqmm.csv
csv/hardoff_tokyo.csv
db/
db/ListDB.boltdb
listdbg_arm6.sh
loaddb_arm6.sh
実行します。
$ ./listbbg_arm6.sh
まあ、ターミナルなのでローカルとの違いがよくわからないですが、動きました。
(2) Lifetouch Note
次に、「Android黎明期のクラムシェルたち(その2 LifeTouch NoteでLinuxを使おう)」で紹介したNECのAndroid 2.2マシンであるLifetouch NoteにGNU Root Debianをインストールした環境で動かしてみます。アーキテクチャは、(1)のRaspberry PIと同じarm6になります。
これは実機なので、問題なく動いているのがわかります。
(3) ASUS Zenfone Max M2
ちょっと変なマシンが続いてしまったので、現在使っているスマートフォンにも入れてみました。CPUは、Qualcomm Snapdragon632とのことで、アーキテクチャはarm64になります。実行環境は、Android 9.0上のTermuxです。
オブジェクトは、
make build-arm64
で作成しました。
画面はちゃんと表示されキーボード入力も出来ます。
問題なのは、「タッチが効かない」こと。
これは痛い。Python Urwidでは、ちゃんと使えたんですけどね。ここでも差がついてしまいました。
(4) Windows64
最後に、Windows10の環境でテストしておきます。
make build-win64
で作成したものを実行します。
ちょっと画面が乱れますね。Windowsのコマンドプロンプトなので、致し方ないかな。
Windows64の環境であれば、WSL2を使うと問題なく表示されます。この場合は当然ですが、Linux amd64用のlistdbg.tgzを使用します。
以上で、検証を終了します。
最後に
若干の不具合はありましたが、当初の
TUIアプリを様々な環境で、「前提条件なしでの動作を可能にしたい」
という目標は達成できたようです。
これにて「Go言語(golang)でTUIアプリを作ろう」のテーマは完了といたします。つまらないプログラムですが、何かの参考になれば幸いです。