LinuxにGo開発環境を作ろう!
MX Linux 18にGo開発環境を作ってみる。
別にMX Linux 18にこだわらなくても、他のDebian系ならば同じことが出来るはず。
違いは、Goのコンパイル済みファイルをダウンロードする時に、自分のOS用のやつを間違えないようにダウンロードすること。
Go言語ダウンロード
本家サイトからダウンロードする。
やりかたは、本家のDocumentを参照。
Getting Started - The Go Programming Language
ダウンロードする時は、自分が利用するOSに注意すること。
今回はLinuxなので「go1.14.2.linux-amd64.tar.gz」をダウンロードする。
Raspbian用なら「go1.14.2.linux-arm64.tar.gz」か「go1.14.2.linux-armv6l.tar.gz」ですね。
ダウンロードファイルの展開とPATHの設定
linuxのディレクトリ慣習にならい、optディレクトリに解凍してみる。
/optではなく、$HOME配下にoptディレクトリを作った。
Go言語のバージョンにより環境を切り替えたいので、環境毎にフォルダを作る。
下記の例では、バージョン1.13.6と1.14.2を切り替えられるようにしている。
/home/kamuycikap/opt ├── 1.13.6 <- バージョン1.13.6の解凍先 ├── 1.14.2 <- バージョン1.14.2の解凍先 └── gopath <- ソースコードなどが収められるディレクトリ ├── bin ├── pkg └── src ├── github.com ├── golang.org ├── honnef.co ├── mvdan.cc └── workspace -> /home/kamuycikap/drp_prg/go <- 新規作成する自分ソース管理用のトップディレクトリ ※別ディレクトリのソフトリンクにしている。
下記の設定を、$HOMEの .bashrc に設定。
## Go言語設定関連 export GOPATH=/home/kamuycikap/opt/go/gopath # Go言語開発用のトップディレクトリ export GOROOT=~/opt/go/1.14.2 # Go言語本体のディレクトリ(zipファイル解凍先) export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # シェルでコマンド叩けるように、それぞれのbinディレクトリを登録
便利なGoパッケージの導入
Go言語は、言語対応の様々なパッケージ(Go言語拡張機能)をインターネット上に公開しており、Go言語用コマンド(以下、便宜上Goコマンド)で自分の好きなパッケージを導入できる。
導入したパッケージは、GOPATH配下のディレクトリで全て管理される。
以下、あると便利なGo言語用パッケージ導入コマンド
$ go get github.com/motemen/gore/cmd/gore # Go言語用REPL $ go get golang.org/x/tools/gopls # Go言語用LSPサーバー $ go get golang.org/x/tools/cmd/goimports # 自動的に不必要なimportを調整してくれる $ go get -u github.com/k0kubun/pp # Go言語用REPLの色つけ $ go get golang.org/x/tools/cmd/godoc # Go言語用REPL上の単語補完
2020/04/28 追記
VSCodeやらEmacsやらで開発環境を整えていると、結局、こんな感じになりました。
インストールコマンドの go get .... の部分は割愛します。
. ├── dlv ├── fillstruct ├── go-outline ├── go-symbols ├── gocode ├── godef ├── godoc ├── godoctor ├── goimports ├── gomodifytags ├── gopkgs ├── goplay ├── gopls ├── gore ├── gorename ├── gotests ├── guru └── impl
ソースコード作成
上記ディレクトリツリーのgopath配下に新規フォルダを作ってソースコードを作成
$ cd /home/kamuycikap/opt/go/gopath/src/workspace $ mkdir ./firstpkg $ cd ./firstpkg $ nano ./firstpkg.go
package main import "fmt" func main() { fmt.Printf("hello, world\n") }
ドキュメント確認テスト
標準でついてくるコマンド「go doc」か、追加でパッケージインストールする「godoc」を利用すると、ソースコードに記述されているコメントをあんじょう宜しく引用して、画面に表示してくれる。
「go doc」はコマンドラインに情報を表示し、「godoc」はWebブラウザに表示してくれる。
言語レベルでDoxygenのような機能を有しているのはすばらしい。
ここでは、ブラウザで表示してくれる「godoc」を紹介。
$ cd /home/kamuycikap/opt/go/gopath/src/workspace/firstpkg $ godoc -http=localhost:8080 using GOPATH mode
この状態で、ブラウザを起動し、URL欄に「http://localhost:8080」と入力。
すると、Go本家のようなWebページが起動する。
続けてURL欄を「http://localhost:8080/pkg/workspace/firstpkg」に修正すると、firstpkg.goの内容がブラウザに表示される。
これが正しいかどうかわからないが・・・今回の構築環境ではソフトリンクとしてsrcディレクトリ下にworkspaceを配置している。
よって、「http://localhost:8080/pkg/workspace/firstpkg」と修正しなければならないような気がする。
ちなみに、「http://localhost:8080/pkg/workspace/」とすると、workspace配下に作成したパッケージが一覧で表示される。
「http://localhost:8080/pkg/」とすると、GOPATH直下のsrcディレクトリに配置されている、全パッケージの一覧が表示される。