😊
[環境構築]Ubuntu22.04上に、VSCode+Go(1.21)+Webアプリの環境をつくる。
Abstract
タイトルの通り、goの開発環境を構築してみた。
手順
- goインストール
- インストール確認
- VSCodeで環境構築
- goソース作成
- ビルド -> 実行
前提
- VirtualBox上にUbuntu22.04がインストールされていること。
※ココを参考に。 - Ubuntuにgitがインストールされていること
- VirtualBox+Linux22.04にVSCodeをインストールしておく。VSCodeをインストール
- 日本語化もついでに。VSCodeを日本語化
初回時のおまじない(あまり考えないでやっとく)
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt autoremove -y
$ sudo apt autoclean -y
Ubuntuに go をインストール
Download and installを参考に。
$ cd ~ && mkdir tempgo && cd tempgo
$ wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
$ sudo rm -rf /usr/local/go
$ sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
$ rm -rf ~/tempgo
$ echo 'export PATH="$PATH:/usr/local/go/bin"' >> ~/.bash_profile
$ source ~/.bash_profile
$ go version
go のプロジェクト生成して動かしてみる
goプロジェクト初期化のおまじない
$ cd ~ && mkdir hellogo && cd hellogo
$ go mod init hellogo
goのサンプルコードを生成
$ vi helloworldgo.go
package main
import "fmt"
func main() {
fmt.Printf("Hello World\n")
}
go実行
$ go run helloworldgo.go
できた!!
build -> go実行
$ go build helloworldgo.go
実行
$ ./helloworldgo
できた!!
VSCodeの開発環境を構築する。
Go拡張機能をインストール
Go拡張機能が依存するパッケージをインストール
↓の赤枠みると、依存パッケージがなかったら、右下に通知が表示されるらしい。
なので手順通りに、適当なフォルダを開いてgoプロジェクトを作成する。
まずプロジェクトフォルダ作成
$ cd ~ && mkdir aaago && cd aaago
$ go mod init aaago
フォルダを開く
まだ通知は表示されない。
go.modを開く。
右下に通知が出た。通知ってこれのことね。ふ~ん。
"gopls"が不足らしい。install押下。
ちょっと待つと成功で終了した。
GoでHelloWolrdを動かす
package main
import "fmt"
func main() {
fmt.Printf("Hello world\n")
}
実行
依存ライブラリのインストールを要求してきた。
Install Allを押下
ちょっと待つ、インストール成功。
もっかい、実行とデバッグを押下
できた!!
ブレークポイントも張れた!!
GoでWebアプリを動かす
webアプリ作成
$ cd ~ && mkdir test-go-webapp && cd test-go-webapp
$ go mod init test-go-webapp
$ vi webmain.go
webmain.goの内容はこれ。
webmain.go
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", HelloServer)
http.ListenAndServe(":8080", nil)
}
func HelloServer(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}
Webアプリ実行
webアプリ実行
$ go run webmain.go
ブラウザーを開いて、http://localhost:8080/world にアクセスする。
出来た!! Hello, world!が表示された。
終了するときは、terminalで、"ctrl+c"ね。
Discussion