やりたいこと
GoのCLIツールを作成してRaspberryPi上でとりあえず動かす。
IoT的な仕事が今後増えそうなので、クロスコンパイルが簡単なGoで手順を確立しておけばいろんな環境で動くツール作成に役立つのではないかという思い。
使う環境
<ビルド環境>
Windows :Windows10
WSL :ubuntu18.04 LTS(転送に使うrcp用)
<実行環境>
ハード :Raspberry pi 3 Model B
OS :2019-07-10-raspbian-buster-full
<前提>
WindowsとRaspberryPi間でSSH接続できる環境であること
手順
- 使うパッケージをインストールする
- ツールを作成する
- ビルドする
- RaspberryPiに転送する
1. 使うパッケージをインストールする
今回は初心者かつ勉強用なので深く考えずにググってすぐに出てきたものを使う。
spf13/cobraというパッケージが有名そうなので、これを使う。
go get github.com/spf13/cobra
#最近はcobraが人気っぽいけど、他にもフレームワークはいっぱいあるみたいなので、時間があったらいろいろ試してみる。
2. ツールを作成する
下記のサイトを参考にとりあえず動くものを作る。
わかりやすくまとめていただいて感謝。
https://qiita.com/usk81/items/df68a00c898b145faee5
3. ビルドする
(1) RaspberryPiのアーキテクチャを確認する(RaspberryPi上)
$ uname -m
armv7l
(2) クロスコンパイル設定を行う(Windows コマンドプロンプト上)
set GOOS=linux
set GOARCH=arm
set GOARM=7
(3) ビルドする(Windows コマンドプロンプト上)
go build -o [バイナリ名]
(例) go build -o test_cli_tool
4. RaspberryPiに転送する
WSL上で下記コマンドを投入する。
rcp [バイナリ名] [ラズパイのユーザ名]@[RaspberryPiのIPアドレス)]:[RaspberryPi上のディレクトリ]
(例) rcp test_cli_tool hogeuser@192.168.0.1:~/work
何も考えずに実行したら
(サブコマンドを"HelloCli"にしました)
~/work/test_cli_tool HelloCli
動いた!簡単だ~~
HelloCli was executed
参考サイト
- cobraでのツール作成
https://qiita.com/usk81/items/df68a00c898b145faee5 - クロスコンパイルの方法
https://qiita.com/bamchoh/items/2d21cbbfed393e47fed2