前提・実現したいこと
プログラム学習2ヶ月目。Progate一通り行い、現在UdemyのGOlangレッスン中(現役シリコンバレーが〜)。
GOLAND上で実行すると下記のエラーメッセージが表示されます。毎回ではありませんが受講中のレッスンを進むに連れ当該の事象が頻発するように... ターミナル上での実行時は問題みられず。なお、該当ソースコード以外でも起こります。
発生している問題・エラーメッセージ
go build runtime/cgo: copying /Users/***/Library/Caches/go-build/72/72acc61168dad44dc59176dccf4df879ffde63af0209d32bf42a74586107024e-d: open /usr/local/go/pkg/darwin_amd64/runtime/cgo.a: permission denied
該当のソースコード
GO
1package main 2 3import ( 4 "html/template" 5 "io/ioutil" 6 "log" 7 "net/http" 8) 9 10type Page struct { 11 Title string 12 Body []byte 13} 14 15func (p *Page) save() error { 16 filename := p.Title + ".txt" 17 return ioutil.WriteFile(filename, p.Body, 0600) 18} 19 20func loadPage(title string) (*Page, error) { 21 filename := title + ".txt" 22 body, err := ioutil.ReadFile(filename) 23 if err != nil { 24 return nil, err 25 } 26 return &Page{Title: title, Body: body}, nil 27} 28 29func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) { 30 t, _ := template.ParseFiles(tmpl + ".html") 31 t.Execute(w, p) 32} 33 34func viewHandler(w http.ResponseWriter, r *http.Request){ 35 title := r.URL.Path[len("/view/"):] 36 p, _ := loadPage(title) 37 renderTemplate(w, "view", p) 38} 39 40 41func editHandler(w http.ResponseWriter, r *http.Request){ 42 title := r.URL.Path[len("/edit/"):] 43 p, err := loadPage(title) 44 if err != nil { 45 p = &Page{Title: title} 46 } 47 renderTemplate(w, "edit", p) 48} 49 50func main() { 51 http.HandleFunc("/view/", viewHandler) 52 http.HandleFunc("/edit/", editHandler) 53 log.Fatal(http.ListenAndServe(":8080", nil)) 54}
試したこと
1. % go build -i
プロジェクト階層にて実行時は上記同等のエラーメッセージ。その他の階層時はcan't load package: package .: no Go files in /Users/***/Library/Caches/go-build
と表示。
2. % ls -al /usr/local/go/pkg
パスの権限で"permission denied"になってないか確認し、下記の表示。
total 0 drwxr-xr-x 6 root wheel 192 May 15 04:29 . drwxr-xr-x 20 root wheel 640 May 15 04:26 .. drwxr-xr-x 60 root wheel 1920 May 15 04:29 darwin_amd64 drwxr-xr-x 60 root wheel 1920 May 15 04:29 darwin_amd64_race drwxr-xr-x 5 root wheel 160 May 15 04:26 include drwxr-xr-x 3 root wheel 96 May 15 04:26 tool
補足情報(FW/ツールのバージョンなど)
% go version
go version go1.14.3 darwin/amd64
% where go
/usr/local/go/bin/go
GOLAND 2020.1.2
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/22 06:25