Xubuntu上でgolangアプリケーションを動かす

golangのアプリケーションをxubuntu上で動かします。

golang インストール

xubuntuにgolangをインストールします。

1
sudo snap install go --classic

インストールされたことを確認します。

1
go version

Visual Studio Code インストール

Visual Studio Codeをインストールします。
日本語入力をするなら、snapコマンドを使わずにパッケージをダウンロードしたほうがいいです。

以下のサイトにアクセスし、.debファイルをダウンロードします。
https://code.visualstudio.com/

ダウンロードしたパッケージファイルを使ってインスールします。
以下のコマンドはダウンロードしたファイルがcode_1.61.2-1634656828_amd64.debの場合です。

1
sudo dpkg -i code_1.61.2-1634656828_amd64.deb 

golangでHello World

チュートリアル:
https://golang.org/doc/tutorial/getting-started

アプリケーション用のディレクトリを作成します。

1
2
mkdir go-hello
cd go-hello

go.modファイルを作成します。

1
go mod init example/hello

ファイルを確認します。

1
cat go.mod

以下のような内容になっています。依存しているモジュールはまだありません。

1
2
3
module example/hello

go 1.17

ここまでコマンドを実行したらVisual Studio Codeを実行します。

Visual Studio Codeの設定

go-helloディレクトリを開きます。
go.modと同じ階層にhello.goファイルを作成します。
メニューのFile -> Open Folderです。

1
2
3
4
5
6
7
8
package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

続いてメニューのView -> Command Pallete(Ctrl+Shift+P)を開きます。
go install updateと入力すると、どのツールをインストールするかのチェックボックスが表示されます。
すべて選択して、OKをクリックします。
しばらく待ちます。

All tools successfully installed. You are ready to Go. :) のような出力がされれば完了です。

プログラム実行

go mod コマンドを実行したターミナルに戻って以下のコマンドを実行します。

1
go run .

Hello, World!と出力されれば成功です。

HTTPサーバ作成

次にHTTPサーバを作ってみます。

先ほどと同じようにディレクトリを作りgo mod initコマンドを実行します。

1
2
3
4
cd
mkdir go-http-servers
cd go-http-servers
go mod init examples/go-http-servers

このサイトのソースコードを使います。
https://gobyexample.com/http-servers

以下の内容でserver.goを作成します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package main

import (
"fmt"
"net/http"
)

func hello(w http.ResponseWriter, req *http.Request) {

fmt.Fprintf(w, "hello\n")
}

func headers(w http.ResponseWriter, req *http.Request) {

for name, headers := range req.Header {
for _, h := range headers {
fmt.Fprintf(w, "%v: %v\n", name, h)
}
}
}

func main() {

http.HandleFunc("/hello", hello)
http.HandleFunc("/headers", headers)

http.ListenAndServe(":8090", nil)
}

実行します。実行しただけでは何も出力されません。

1
go run .

ブラウザでhttp://localhost:8090/helloまたはhttp://localhost:8090/headersを開くとサーバの応答を確認できます。

プログラムを終了するにはターミナルでCtrl+Cを入力してください。