我试图以交互模式运行golang
。
我想使用go-eval
,我遵循README
说明:
go get github.com/sbinet/go-eval/
go-eval
导致-bash: go-eval: command not found
更多信息:
echo $PATH
回归:/usr/local/go/bin:...
echo $GOPATH
回归:$HOME/golang
whereis go-eval
不返回任何输出go install go-eval
返回:
can't load package: package go-eval: cannot find package "go-eval" in any of:
/usr/local/go/src/go-eval (from $GOROOT)
$HOME/golang/src/go-eval (from $GOPATH)
您需要将GOPATH / bin添加到PATH。
PATH="$GOPATH/bin:$PATH"
更新:Starting with Go 1.8,如果没有设置,GOPATH默认为$HOME/go
。如果未明确设置GOPATH,则上述操作无效。
要同时设置它们,请将其添加到.profile:
export GOPATH="$HOME/go"
PATH="$GOPATH/bin:$PATH"
在go-eval
中的二进制$GOPATH/bin
?您是否使用$GOPATH/bin/
作为工作目录运行命令?如果没有,那可能就是问题所在。
go get
和go install
在$GOPATH/bin
中安装二进制文件(如果有的话)
检查$GOPATH/bin
的go-eval二进制文件。如果它在那里,尝试从$GOPATH/bin
与./go-eval
运行它。如果这样有效,那你很好。
将来,如果您希望从shell中的任何位置运行$GOPATH/bin
中的二进制文件,请将以下内容添加到.bashrc或配置文件中:
export PATH=$PATH:$GOPATH/bin
然后重新启动终端或运行. ~/.bashrc
或. /etc/profile
运行go install go-eval时我得到:
无法加载包:package go-eval:在以下任何一个中找不到包“go-eval”:/ usr / local / go / src / go-eval(来自$ GOROOT)$ HOME / golang / src / go-eval (来自$ GOPATH)
您得到上述错误,因为go-eval不在$HOME/golang/src/go-eval
中。运行go get github.com/sbinet/go-eval/
会将源代码下载到$GOPATH/src/github/sbinet/go-eval/
。如果要运行go install go-eval
,则必须在$GOPATH/src
中指定与其在目录层次结构中的位置相关的包名称。
例如go install github/sbinet/go-eval
除了给出的答案之外,我还想补充一下。
作为一个有用的提示,您始终可以使用which命令测试命令。
如:哪个去
如果找不到该命令,则表示您首先需要解决PATH问题。
然后,您可以专注于使用find命令查找命令。
如:find / -name“go”-print 2> / dev / null
第一个斜杠是开始搜索的目录,-name的参数是你要查找的命令,-print获得了良好的结果。 2> / dev / null发送neverland(null)无法访问的目录结果,因此您不需要查看一堆错误。
使用此过程可帮助您快速找到有问题的命令,然后将其添加到PATH env变量中,并且可以按照其他答案中的说明进行访问。