AdSense

網頁

2022/11/6

Golang swag command not found

Mac安裝Go的swaggo套件執行swag時出現command not found找不到命令。


問題環境:

  • MacBook Pro Apple M1 Pro
  • macOS Monterey 12.5
  • Go 1.19.2 darwin/arm64


狀況

在終端機以zsh執行go get -u github.com/swaggo/swag/cmd/swag下載swaggo/swag及其命令列套件,但執行swag出現command not found如下。

% swag --version
zsh: command not found: swag

查看GOPATH/Users/<username>/go

參考swag init command not running #197這篇修改GOPATH/Users/<username>/go/bin也沒用。

然後發現在/Users/<username>/go/bin目錄中根本沒有swag的執行檔swag


解決

查了一下才知道Go 1.17開始廢棄了go get安裝可執行檔功能,且1.18後無法build package,也就是go get只能單純用來下載及更新go.mod的依賴。若要下載並安裝Go的可執行檔要改用go install

在zsh輸入go install github.com/swaggo/swag/cmd/swag即可安裝swag的可執行檔。

% go install github.com/swaggo/swag/cmd/swag
go: downloading github.com/go-openapi/spec v0.20.4
go: downloading github.com/go-openapi/jsonreference v0.19.6
go: downloading github.com/PuerkitoBio/purell v1.1.1
go: downloading github.com/go-openapi/swag v0.19.15
go: downloading github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
go: downloading golang.org/x/net v0.0.0-20220722155237-a158d28d115b
go: downloading github.com/mailru/easyjson v0.7.6

把swag執行檔所在路徑/Users/<username>/go/bin設定到PATH變數後,便可成功執行swag命令。

% swag --version
swag version v1.8.7

沒有留言:

AdSense