我最近使用CentOS 6.3將Go安裝到了我們的服務(wù)器上。安裝似乎一切正常。但是,我制作了一個測試“ hello world”腳本,運行時得到以下輸出。fork/exec /tmp/go-build967564990/command-line-arguments/_obj/a.out: permission denied現(xiàn)在運行g(shù)o env或其他go命令似乎可以正常工作。起初,我認為這是一個權(quán)限問題,但是以root用戶身份運行時,我會得到相同的結(jié)果。一個
3 回答

POPMUISE
TA貢獻1765條經(jīng)驗 獲得超5個贊
只是猜測:出于安全原因,您的nix可能會禁用在/ tmp中執(zhí)行程序。它可能在CentOS中是可配置的,但我不知道。
替代解決方案:似乎您正在嘗試go run
執(zhí)行Go程序(與C一樣是腳本)。嘗試(假設(shè)$GOPATH=~
,容易的可能性)代替常規(guī)構(gòu)建,即代替
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來創(chuàng)建二進制文件IIRC,但不會嘗試從那里執(zhí)行它。
PS:請勿以超級用戶身份運行這些命令。無需使用正確的設(shè)置。

慕尼黑5688855
TA貢獻1848條經(jīng)驗 獲得超2個贊
我今天遇到了這個問題,但是上面的解決方案不起作用。我的礦山是通過簡單地運行來解決的:
$ export TMPDIR=~/tmp/
然后我可以使腳本運行:
$ go run hello.gohello, world
唯一的缺點是您必須在export TMPDIR
每次運行應(yīng)用程序時都運行。
- 3 回答
- 0 關(guān)注
- 566 瀏覽
添加回答
舉報
0/150
提交
取消