GO言語でRevelフレームワークを試してみようと思い、
以下のRevelのチュートリアルを試してみました。
https://revel.github.io/tutorial/gettingstarted.html
すると、panic: runtime error: invalid memory address or nil pointer dereference
のエラーが出てしまい、調べて色々試してもなかなか解決せず、
試行錯誤の末、なんとか解決した(実行はとりあえずできた)ので、
備忘録で残しておきます。
チュートリアルでのエラー
上記チュートリアルの手順を行い、
revelのインストールやらMercurialのインストールやらを行いましたが、
revel new -a myapp
の実行で以下のエラーが発生してしまいました。
Parsing packages, (may require download if not cached)...panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x33792af]
これに関して以下について見直しましたが解決せず、、、。
- GOPATH
- GOROOT
- revelのバージョン
- GO言語のバージョン
- revelのインストール先
解決策
色々試したため、もしかしたら間違えている可能性もありますが、
おそらくは以下の実行で解消します。
go install github.com/revel/revel@latest
上記はチュートリアルに載っていないので、試してみてください。
前提として、GOPATHの設定は必要です。(以下で説明します)
GOPATHについても理解を進めているところですが、macOSで言えば以下のコードを~/.zshrcファイルに追加し、
export GOPATH={ワークスペース}
export PATH=$PATH:$GOPATH/bin
以下のコードを実行します。
Source ~/.zshrc
GOPATHはデフォルトでは「~/go」が設定されるようです。
デフォルトでよければそのままで良いかもしれませんが、
任意の場所に設定することができます。
(勉強中ですが、GOPATHはパッケージを置く場所のようなので、デフォルトのままでも良さそう?
アプリはGOPATHでなくても作成できそう、。)
以上です。
PS. Revelのアプリ作成で同じエラーに遭遇している人が見当たらなかったのですが、
みんな自分で解決できているんですかね、、?