【问题标题】:go install : directory outside of GOPATHgo install : GOPATH 之外的目录
【发布时间】:2014-11-28 16:39:29
【问题描述】:

我刚刚安装了 Go,但我的 go install 无法正常工作。我按照 YouTube 上的教程编写了一个 HelloWorld.go 应用程序,但我不断收到错误消息:

go install: no install location for directory /Users/####/Documents/Dev/go/src/github.com/####/hello outside GOPATH

这是我的go env

GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/####/Documents/Dev/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

在我关注的人的教程中,GOPATH 也设置为一个文件夹,然后我打算创建文件夹 /src/github.com/.....etc 然后在目录中运行go install用我的代码。这是代码,尽管我认为代码不会有太大问题:

package main

import "fmt"

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

当我使用我的代码在目录中运行pwd 命令时,输出如下: /Users/####/Documents/Dev/go/src/github.com/####/hello

当我使用我的代码在目录中运行echo $GOPATH 命令时,输出如下: /Users/####/Documents/Dev/go

我正在运行 Mac OSX Yosemite。

【问题讨论】:

  • 你能澄清一下你的代码在哪个目录吗? $GOPATH/src/github.com/####/hello 或 /src/github.com/####/hello?此外,对于 hello world,您不必使用 github.com/username/hello 模式 - 除非您真的想在 github 上托管它。您可以使用 $GOPATH/src/test/hello 或类似的东西。因为显然您对目录有些混淆。
  • 代码在 $GOPATH/src/github.com/####/hello,我决定用 github 模式设置文件结构,因为我将在 github 上托管我的代码在将来。只是 HelloWorld 应用可能没有。
  • 发布“pwd”和“echo $GOPATH”命令的输出。您正在 $GOPATH 之外的目录中运行“go install”。
  • pwd: /Users/####/Documents/Dev/go/src/github.com/####/hello echo $GOPATH: /Users/####/Documents/Dev/go

标签: macos go


【解决方案1】:

我能想到两种可能:

  1. GOBIN 环境变量

我建议您阅读有关go 命令的文档,特别是the section on the GOPATH envvar。引用:

bin/ 目录保存已编译的命令。每个命令都以其源目录命名,但只是最后一个元素,而不是整个路径。也就是说,source 位于 DIR/src/foo/quux 的命令安装到 DIR/bin/quux,而不是 DIR/bin/foo/quux。 foo/ 被剥离,以便您可以将 DIR/bin 添加到 PATH 以获取已安装的命令。如果设置了 GOBIN 环境变量,命令将安装到它命名的目录而不是 DIR/bin。

Go 可能会尝试在此处安装您的程序,并遇到权限错误。可能只是一个糟糕的错误消息。无论如何,我不清楚你为什么设置$GOBIN。要将go 工具添加到您的PATH,请直接添加目录:export PATH=/usr/local/go/bin:$PATH

  1. 不区分大小写的文件系统

如果这不起作用,请检查您的主目录的大小写,就像https://stackoverflow.com/a/27430341 中的问题一样。

【讨论】:

    猜你喜欢
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2015-03-04
    • 1970-01-01
    相关资源
    最近更新 更多