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を使おう)」で紹介したNECAndroid 2.2マシンであるLifetouch NoteGNU 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アプリを作ろう」のテーマは完了といたします。つまらないプログラムですが、何かの参考になれば幸いです。