質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

IDE

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

Q&A

3回答

4137閲覧

IDE:GOLAND上で実行時のエラー

TM.

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

IDE

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

0グッド

0クリップ

投稿2020/05/23 05:06

編集2022/01/12 10:55

前提・実現したいこと

プログラム学習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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

sudo chmod -R 777 /usr/local/go

同じことが起こりましたがアクセス権限を変えてやると動きました。

参考
https://qiita.com/t-a-run/items/239ed690ece7a011804a
https://stackoverflow.com/questions/60771344/go-build-i-cause-open-usr-local-go-pkg-darwin-amd64-runtime-cgo-a-permission

投稿2020/09/22 05:16

編集2020/09/22 05:18
ryusuke06

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TM.

2020/09/22 06:25

コメントありがとうございます。 仕事終わったら試してみます!
guest

0

・「GOLAND上で実行すると」というのはどういう操作を具体的に指していますでしょうか?
・ソースコードは問題なさそうです


こちらの issue が参考になるかもしれません。

つまり darwin のインストーラからインストールした場合に GOROOT(/usr/local/go) にインストールされたファイルの所有者が root になるようです。

所有者が root である場合、以下の tarball からのインストールを試してみてはいかがでしょうか?

sudo rm -fr /usr/local/go sudo tar -C /usr/local -xzfv go1.14.3.darwin-amd64.tar.gz

ちなみにビルド時(go build)の -i フラグは不要かと思います。私は使ったことがないですし、上記の issue でもほとんど不要とされています。

投稿2020/05/23 11:10

編集2020/05/23 11:11
d_tutuz

総合スコア730

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TM.

2020/05/24 02:46

A. GOLAND上で緑三角の「run GO」を押すことです。 インストール試みましたが、「 tar: Error opening archive: Failed to open 'v' 」となりできませんでした。
TM.

2020/05/24 02:59

ダメ元でもう一回公式ページからインストールしましたが、やはりだめでした。
d_tutuz

2020/05/24 03:08

'v' をのぞいてたら解凍できますか? sudo tar -C /usr/local -xzf go1.14.3.darwin-amd64.tar.gz
TM.

2020/05/24 03:12

tar: Error opening archive: Failed to open 'go1.14.3.darwin-amd64.tar.gz' となりました。
d_tutuz

2020/05/24 03:15

あ、ローカルにファイルがある前提で話してしまいましたが、wgetでファイルを取得する必要があります。省略せずに記載すると以下です。 wget https://dl.google.com/go/go1.14.3.darwin-amd64.tar.gz sudo tar -C /usr/local -xzf go1.14.3.darwin-amd64.tar.gz
TM.

2020/05/24 03:25

zsh: command not found: wget tar: Error opening archive: Failed to open 'go1.14.3.darwin-amd64.tar.gz' とそれぞれなりました。 貴重なお時間さいていただいて感謝しております。
d_tutuz

2020/05/24 04:04

macOSだとデフォルトでwgetが入っていないのですね。 brew install wget でインストールできると思います。それで再度お試しを ちなみに /usr/local/go の所有者は root でしたか?
TM.

2020/05/24 05:05

ご教授いただいたコマンドすべて実行できました。 「% ls -al /usr/local/go/pkg」実行すると"root"の文字が解消してました。 今レッスンすすんでて事象の確認できないですけど、rootでなくなったので大丈夫ということでよろしいでしょうか?質問ばかりで恐縮です。
d_tutuz

2020/05/24 05:12

私の環境で再現できないので分かりませんが、issueのコメントによると問題なさそうです。 GoLandで実行したときに同じ事象が発生するか確認してみてください
TM.

2020/05/24 05:33

今試したんですけど、やはり同じ事象になりました。 ターミナルでの実行は変わらず問題ないんですけど(そこが救いです)... IDEの問題なんでしょうか.. 初心者にはトホホな案件です(笑) とりあえずにはなりますが、ここまでの全てに感謝申し上げます。
guest

0

Have you tried installing a different code? I suggest that you install a different tarball, but you can also attempt to change the access privilege. Hope it helps

投稿2020/09/24 10:27

Utagawa_Aki

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問