Tôi đang gặp sự cố khi thiết lập công cụ Go App trên osX. Đường dẫn google-cloud-sdk có ở GOROOT hoặc GOPATH không?GO tìm kiếm ở đâu trên google-cloud-sdk? GOPATH nên là gì?
tôi đặt google-cloud-sdk trong/usr/local
Dường như có mã nguồn trong: goroot/
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/
đi env
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
$ đi nhận được
package google.golang.org/appengine: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
package google.golang.org/appengine/datastore: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
Khi tôi cố gắng để thay đổi PATH để bao gồm/src:
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src"
$ đi lấy
package google.golang.org/appengine: mkdir /usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src: permission denied
package google.golang.org/appengine/datastore: cannot find package "google.golang.org/appengine/datastore" in any of:
/usr/local/go/src/google.golang.org/appengine/datastore (from $GOROOT)
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src/google.golang.org/appengine/datastore (from $GOPATH)
tôi nối đường dẫn đến google-cloud-sdk để GOROOT:
export GOROOT="/usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
GO doesn' t dường như thích nhiều đường dẫn trong GOROOT:
$ go get
go: cannot find GOROOT directory: /usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot
Tôi đã chạy tập lệnh ./install.sh sau khi tôi sao chép nguồn vào/usr/local
Phần bổ sung của PATH không sửa lỗi tôi đang gặp phải.
Tôi thấy câu trả lời này: Test cases for go and appengine
Nhưng đó là từ 5 năm trước và nó có vẻ vụng về/hacky. Nó sẽ có vẻ trong 5 năm sẽ có một giải pháp thanh lịch hơn mà sao chép các thư mục cá nhân và tạo ra các liên kết tượng trưng.
EDIT **********************
mv /usr/local/google-cloud-sdk/ ~/go/
sau đó xóa GOPATH và GOROOT từ .bash_profile
Sau đó tôi chạy ./install.sh
tôi đã cố gắng để chạy 'đi lấy':
$ đi lấy
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
Kể từ đó thất bại, tôi đã thêm đường dẫn đến thư mục làm việc của mã VÀ nối đường dẫn đến google-cloud-sdk vào PATH:
export GOPATH = "/Users/Bryan/work/gocode/skincarereview"
export PATH=$HOME/google-cloud-sdk:$PATH
go get
nhận thất bại với cùng một thông điệp:
$ go get
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
For more details see: 'go help gopath'
Tôi đã cố gắng để làm những gì bạn đề nghị và nó đã không làm việc. Tôi đã thêm nỗ lực của mình vào OP. – BryanWheelock
@BryanWheelock Bạn vừa chuyển SDK vào thư mục nguồn của bạn. Nó đi vào thư mục nhà của bạn lên một cấp. Nó phải nằm trong '~/google-cloud-sdk' Đặt' $ GOPATH' của bạn thành '$ HOME/go' trừ khi các nguồn của bạn nằm trong thư mục' work/gocode' mà bạn đã đề cập, sau đó sử dụng nó, mặc dù tôi ' m khá chắc chắn bạn muốn '$ HOME/go'. Ngoài ra, dự án của bạn phải được đặt trong thư mục $ GOPATH/src' của bạn. – RayfenWindspear
@BryanWheelock cập nhật câu trả lời – RayfenWindspear