我最近用CentOS 6.3安装了Go.安装似乎进行得很顺利.然而,我做了一个测试"hello world"脚本,当我运行时,我得到以下输出.
fork/exec /tmp/go-build967564990/command-line-arguments/_obj/a.out: permission denied
现在,运行go env或其他go命令似乎起作用了.起初我认为这是权限问题,但是以root用户身份运行得到的结果是一样的.一个
我最近用CentOS 6.3安装了Go.安装似乎进行得很顺利.然而,我做了一个测试"hello world"脚本,当我运行时,我得到以下输出.
fork/exec /tmp/go-build967564990/command-line-arguments/_obj/a.out: permission denied
现在,运行go env或其他go命令似乎起作用了.起初我认为这是权限问题,但是以root用户身份运行得到的结果是一样的.一个
只是猜测:您的nix可能出于安全原因禁用了在/tmp中执行程序.它可能可以在CentOS中配置,但我不知道.
另一种解决方案是:似乎您正在try go run
来执行GO程序(这是脚本,就像C是脚本一样).try (假设是$GOPATH=~
,这是一种简单的可能性)而不是普通的构建,也就是说,而不是
me:~/src/foo$ go run main.go
试试看
me:~/src/foo$ go build # main.go should not be necessary here
me:~/src/foo$ ./foo
这种方法仍将使用/tmp whatever来创建二进制文件IIRC,但不会try 从那里执行它.
PS:Do not以root用户身份运行这些命令.不需要正确的设置.