Raspberry Pi4 に Go言語 と 「ECHO」の環境を構築する


**はじめに**
Raspberry Pi4 に Go言語 と ECHO（クラウド型Webプラットフォーム）の環境構築を行った。
この時の覚書である。

そもそも「ECHOって何？」から始まり 検索して調べるも それらしきものは検索されず・・・・

余談ながら 大きな企業の中で　ソフトのプログラムを作成していた程度 （プログラム作成に100%
の時間を割けず 会議など雑用が多い) では、Go言語は 聞いたことがある程度で 仕事で接した以外の
技術には、全く無知であったと思い知りました！

---

**Go言語のインストール**
 Step1：[https://golang.org/dl/](https://golang.org/dl/ "GO言語") よりOSのイメージを作成する
&emsp;&emsp;&emsp; Raspberry Pi4 のCPUは、quad-core Cortex-A72 (ARM v8) 64-bit SoC なので
&emsp;&emsp;&emsp; [go1.21.0.linux-armv6l.tar.gz]を選ぶ (2023年09月05日現在)
&emsp;&emsp;&emsp; >$ wget https://go.dev/dl/go1.21.0.linux-armv6l.tar.gz
![Go1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2056854/9030c69e-e404-e8ae-e81a-12bd36b731ad.jpeg)

 Step2：Raspberry Pi 上で ダウンロードした圧縮ファイルを解凍する。 goフォルダーが作成される
![P9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2056854/e83de6e4-6dc1-69df-cc09-6f7ef4cdd823.jpeg)

 Step3：ターミナルウィンドウ 内で コマンド以下のコマンドを実行

```
$ export PATH=~/go/bin:$PATH
```

★ターミナルウィンドウ 内で コマンドを実行するとインストールした Go のVersionが表示されれば、OK!

```
$ go version
go version go1.17.1 linux/arm 
```

 Step4：下記の様な実行用ファルダー(MyWork/hello/)を作成
![P10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2056854/24a09e40-d439-15f5-2594-9fb375698a2b.jpeg)

 Step5：上記 フォルダー内に以下の <hello.go> をテキストエディタを用いて作成
&emsp;&emsp;&emsp; ★Hello World を表示させるプログラム

```hello.go
package main

import "fmt"

func main() {
fmt.Printf("Hello World\n")
}
```

 Step6：ターミナルウィンドウ 内で 以下のコマンド を実行 (Hello World と表示されれば OK!)

```
pi@hostname:~/MyWork/hello $ go run hello.go
Hello World
```
 
 Step7：ターミナルウィンドウ 内で 以下の コマンド を実行 (実行ファイル hello が生成され, ./helloで実行)

```
pi@hostname:~/MyWork/hello $ go build hello.go
pi@hostname:~/MyWork/hello $ ./hello
Hello World
```

---
**ECHO のインストール**
~~step8: ../home/pi 上で [echo のパッケージを Install]~~

~~$ go get github.com/labstack/echo/v4~~


 step9: echo用の Workフォルダー(下記の様な・・・)を作成する
![P11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2056854/55d9dbdd-f24e-ec55-50ab-0f1cabb805ad.jpeg)

 step10: このフォルダーに <hello.go> をテキストエディタを用いて作成

```hellp.go
package main

import (
  "net/http"
  "github.com/labstack/echo/v4"
  "github.com/labstack/echo/v4/middleware"
)

func main() {
  // Echo instance
  e := echo.New()

  // Middleware
  e.Use(middleware.Logger())
  e.Use(middleware.Recover())

  // Routes
  e.GET("/", hello)

  // Start server
  e.Logger.Fatal(e.Start(":1323"))
}

// Handler
func hello(c echo.Context) error {
  return c.String(http.StatusOK, "Hello, World!")
}
```

Step11: このフォルダーに対して初期化をする (2行目は、おまじない)
&emsp;&emsp;&emsp; ★GOPATH に代わる 新しいやり方....とのこと

```
$ go mod init exsample.com/m
$ go mod tidy
```
※/home/pi/go/pkg/mod/github.com/labstack/echo フォルダーに最新の ECHO パッケージが置かれている

Step12: hello.go を実行する。 (下記の様に Echo が表示される)

```
$ go run hello.go
   ____    __
  / __/___/ /  ___
 / _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.6.1
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
                                    O\
⇨ http server started on [::]:1323
```

Step13: 上記で hello.go を起動した状態で ブラウザを用いて [http://localhost:1323] にアクセスすると Hello World と表示される。
![P12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2056854/afc24d70-a704-529f-e2a4-8fd14e1e5ec8.jpeg)

あ～、やっと出来た！！

---
 ☆2021年 9月28日(火) 午後3時10分 初版(Ver1.00) 作成
 ☆2021年10月30日(土) 午後3時30分 Ver1.10 に改版 - Go言語のVersion をUpdate

---