🏞

Go(ver1.17.6)で godoc を使うまでの手順

2022/03/08に公開約2,300字

はじめに

Go言語もアップデートを重ねていく中で,例えばパッケージの使い方やそのインストール方法など,段々と扱い方が変化しつつあるようです
実際に私もGoの勉強中に,既存の情報通りに試してもバージョンが違うことからうまくいかない〜〜ということがちょいちょいありましたが,
今回は

そういえば超々最初の段階でいきなりつまづいたことがあったな〜〜〜

とふと思い出したので,それについての備忘録代わりの記事です.

やりたいこと

MacにGo(ver1.17.6)をインストールしたのちgodocコマンドが使えるようにして,godocでオフラインからドキュメントを閲覧したり,Webサーバーとして起動させてブラウザ上での確認などをしたい

環境

  • OS: macOS Monterey バージョン12.1(10.13以降なら問題ありません)
  • Go: 1.17.6 darwin/amd64

そもそも GoDoc とは

Goという言語では様々な標準ライブラリやGo製のサードパーティ製パッケージが備わっていますが,それらについてのリファレンスや,また開発をしながらコメントやdocを書く場面があると思いますが,そういったオリジナルのドキュメントですらも全て一つの文書に自動的にまとめてくれる超便利ツールが godoc です
Goを書いている方なら誰しも一度はお世話になったことがあることでしょう.
godoc

手順

1. Goダウンロード

まずGoの公式ページのからダウンロードをしてインストールまで行います
Go topページ
Go ダウンロード中

以下コマンドにて正常にダウンロードできているか確認

$ go version
go version go1.17.6 darwin/amd64

ここまでは普段Macをお使いの方はあまり問題ないと思います.

2. godocのインストール

その1

そして,godoc入れるぞ〜!というタイミングで

$ go get golang.org/x/tools/cmd/godoc

のコマンドを叩いたところ...

go get: installing executables with 'go get' in module mode is deprecated.
	Use 'go install pkg@version' instead.
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.

このようなエラーが出ました
どうやら,

外部パッケージやツールのインストールにgo getもう使わないでね〜
代わりにgo install pkg@versionでやってね〜

だそうです

というのも,Go1.17ではモジュール外からコマンドのバイナリをgo getを使ってインストールした場合,警告が出るようになりました
次のGo 1.18のリリースではgo getでコマンドのインストールができなくなるかもしれません...

何はともあれ,エラー文通り

$ go install golang.org/x/tools/cmd/godoc@latest

を叩いてみます!

その2

これで godoc がインストールされたはずなのでコマンドを叩いてみると...

$ godoc
zsh: command not found: godoc

はにゃ??
調べるとどうやら,godocの実行バイナリはインストールはされてるものの,そのファイルがインストールされるbinフォルダまでのパスはGoをインストールしたてほやほやの方は手動で通す必要があるそうです

そこで,

① まずvimでzshrc[1]ファイルを開く

$ vim ./~zshrc

② パスの記述

↓(.zshrc内)
export GOPATH=$(go env GOPATH)
export PATH=$PATH:$GOPATH/bin

③ 保存

$ source ~/.zshrc

その3

ここまでやったら,godocコマンドが使えると思います!

$ godoc
using module mode; GOMOD=/dev/null    ←これが出てれば概ねOK

localhost:6060にて以下ページが開けば完了です!
godoc

お疲れさまでした.

参考記事

https://qiita.com/ota-yuki/items/8baf92d4a2da8d21cbfb
脚注
  1. macOS Catalina以降のものは,環境変数などの設定系は”ほぼ全て”ここに入れておけば問題ないです ↩︎

GitHubで編集を提案

Discussion

ログインするとコメントできます