LoginSignup
3
2

More than 3 years have passed since last update.

Goでrealize使ってホットリロードしようとしたらcommand not found & exec: not started

Last updated at Posted at 2020-07-23

はじめに

  • NuxtとGoではじめるWebアプリ開発を参考にGoでAPIサーバーつくるにあたってホットリロードするためにrealizeを入れたけど、command not foundになってしまうのを解決するまでにやったことになります。
  • ついでにcommand not found解決したらexec: not startedにもなったのでそれを解決するのやったことも書きました。

環境

  • OS:maOS Catalina 10.15.5
  • Go:go version go1.14.4 darwin/amd64
  • Visual Studio Code version 1.47

ホットリロード用のライブラリとしてrealizeを導入する

  • go get github.com/oxequa/realize
  • PJルートディレクトリに移動し、realizeを実行する
realize start --run --no-config

実行したけどcommand not found

MacBook-Pro:test captain-blue$ realize start --run --no-config
bash: realize: command not found

調べてみる

  • インストールしたパッケージは$GOPATH/binフォルダに入るので、binフォルダを確認する
MacBook-Pro:bin captain-blue$ pwd
/Users/captain-blue/go/bin
MacBook-Pro:bin captain-blue$ ls -la
total 235512
drwxr-xr-x  12 captain-blue  staff       384  7 20 09:21 .
drwxr-xr-x   7 captain-blue  staff       224  7  9 20:30 ..
-rwxr-xr-x   1 captain-blue  staff  18481612  6 21 19:10 dlv
-rwxr-xr-x   1 captain-blue  staff   4588248  6 15 22:22 go-outline
-rwxr-xr-x   1 captain-blue  staff  13215844  6 15 22:23 gocode
-rwxr-xr-x   1 captain-blue  staff  12765100  7 20 00:36 gocode-gomod
-rwxr-xr-x   1 captain-blue  staff   9169032  6 21 18:08 godef
-rwxr-xr-x   1 captain-blue  staff   5452744  6 15 22:23 gopkgs
-rwxr-xr-x   1 captain-blue  staff  21942076  7 20 00:30 gopls
-rwxr-xr-x   1 captain-blue  staff   7990872  6 15 22:23 goreturns
-rwxr-xr-x   1 captain-blue  staff   9448960  6 27 21:35 guru
MacBook-Pro:bin captain-blue$ 

:innocent:いない:innocent:

  • ネットでbinが作られない場合について検索してみる

image.png

わりとすんなり類似の事象についてでてきたので、とりあえず一番上に出てきた記事を見てみる。
- gore を go get しても $GOPATH/bin にバイナリファイルができなかった

すると、以下の記述を発見。パッケージのGitHubリポジトリのREADMEで最新のインストールについて確認する必要がありそう。

goreのGitHubリポジトリのREADMEに書いてあるインストール方法で無事インストールできた。(2019.5.1時点)

  • realizeの最新READMEを確認する
    image.png
    ・・・あれ?合ってる。

  • 困ったときは再起動してやり直してみる
    あんまり良くはないが、仕事ではよく再起動してやり直すとうまくいくとかよくあったのでVS Code再起動して再度go get github.com/oxequa/realizeしてみる

  • 結果

MacBook-Pro:bin captain-blue$ ls -la
total 235512
drwxr-xr-x  12 captain-blue  staff       384  7 20 09:21 .
drwxr-xr-x   7 captain-blue  staff       224  7  9 20:30 ..
-rwxr-xr-x   1 captain-blue  staff  18481612  6 21 19:10 dlv
-rwxr-xr-x   1 captain-blue  staff   4588248  6 15 22:22 go-outline
-rwxr-xr-x   1 captain-blue  staff  13215844  6 15 22:23 gocode
-rwxr-xr-x   1 captain-blue  staff  12765100  7 20 00:36 gocode-gomod
-rwxr-xr-x   1 captain-blue  staff   9169032  6 21 18:08 godef
-rwxr-xr-x   1 captain-blue  staff   5452744  6 15 22:23 gopkgs
-rwxr-xr-x   1 captain-blue  staff  21942076  7 20 00:30 gopls
-rwxr-xr-x   1 captain-blue  staff   7990872  6 15 22:23 goreturns
-rwxr-xr-x   1 captain-blue  staff   9448960  6 27 21:35 guru
-rwxr-xr-x   1 captain-blue  staff  16621260  7 20 09:21 realize

うまくいった。
※あとで$GOBINをちゃんと設定するといいとかも見つけたので、こちらを先に試すべきだったと反省・・・

realize実行してみたらexec: not started

MacBook-Pro:goliff captain-blue$ realize start --run --no-config
[22:34:19][GOLIFF] : Watching 3 file/s 7 folder/s
[22:34:19][GOLIFF] : Install started
[22:34:19][GOLIFF] : Install 
 exec: not started

調査

  • 調べたら、realizeは内部でgo installを使おうとするが、go modulesを使っているとエラーになるらしく、プロジェクトルートディレクトリに.realize.yamlを置く必要があるらしい
  • こちら参照

※アプリ名やパスなどはご自身の環境に合わせて置き換えてください。

.realize.yaml
settings:
  legacy:
    force: false
    interval: 0s
schema:
- name: goliff
  path: .
  commands:
    install:
      status: true
      method: go build -o goliff // go build -o <path/to/built/binary>
    run:
      status: true
      method: ./goliff
  watcher:
    extensions:
    - go
    paths:
    - /
    ignored_paths:
    - .git
    - .realize
    - vendor
  • 結果
    • オプションありだと駄目だったけど、オプション外したら動いた
MacBook-Pro:goliff captain-blue$ realize start
[22:45:10][GOLIFF] : Watching 3 file/s 7 folder/s
[22:45:10][GOLIFF] : Install started
[22:45:12][GOLIFF] : Install completed in 1.873 s
[22:45:12][GOLIFF] : Running..
[22:45:13][GOLIFF] :    ____    __
[22:45:13][GOLIFF] :   / __/___/ /  ___
[22:45:13][GOLIFF] :  / _// __/ _ \/ _ \
[22:45:13][GOLIFF] : /___/\__/_//_/\___/ v3.3.10-dev
[22:45:13][GOLIFF] : High performance, minimalist Go web framework
[22:45:13][GOLIFF] : https://echo.labstack.com
[22:45:13][GOLIFF] : ____________________________________O/_______
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2