go install:GOPATH以外的目录没有安装位置

Ok, I've seen this question pop up a lot, but no solutions are working for me. I've tried countless times to solve this issue, but nothing. Here's what I have done:

  • Installed Go.

I then added path requirements to my .bash_profile:

  • export PATH=$PATH:/usr/local/go/bin
  • export GOPATH=$HOME/go

I then setup the correct folders:

Folders

As you can see, I also created a projected called tire.

The contents for main.go are simply:

package main

import "fmt"

func main() {
  fmt.Println("Hello, world!")
}

I would assume this is all you need to get things working correctly, but no matter what I do, I always get the following error when I try to run go install:

go install: no install location for directory /Users/Daryl/go/src/tire outside GOPATH

I know I could just run go install tire, but that's not the issue. I'd rather know what's going on.

Here's what I get when I run go env:

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/daryl/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
TERM="dumb"
CC="clang"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fno-common"
CXX="clang++"
CGO_ENABLED="1"

Is this familiar to any of you? Did I miss something? Any help would be appreciated.

The problem was as James Henstridge commented, for some reason there was an issue with my user directory name case. Even though the directory is lowercase, I had to make it capitalized.

This worked:

GOPATH=/Users/Daryl/go

This didn't:

GOPATH=$HOME/go

However, since moving to a rMBP from my iMac, I had no problems whatsoever setting up Go, so, to this day, I'm not sure what was going on, but in that instance the capitalization fixed it.

When you run go install Go looks for $GOBIN env variable path. Either you need to set your $GOBIN to $GOPATH/bin

$ export GOBIN=$GOPATH/bin

and/or add $GOBIN to your OS search path

$ export PATH=$PATH:$GOBIN

To use the command without getting the error.