david@raspberrypi:~ $ go env
-bash: /usr/bin/go: Permission denied
这是我的bash.rc
export GOPATH=$HOME/go
$HOME/.bashrc
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
如果我在david @ raspberry pi中运行ls-lah,则会得到以下信息:
david@raspberrypi:~ $ ls -lah
total 28K
drwxr-xr-x 3 david david 4.0K Mar 2 22:20 .
drwxr-xr-x 4 root root 4.0K Mar 2 20:03 ..
-rw------- 1 david david 3.1K Mar 2 21:48 .bash_history
-rw-r--r-- 1 david david 220 Mar 2 20:03 .bash_logout
-rw-r--r-- 1 david david 3.6K Mar 2 22:15 .bashrc
lrwxrwxrwx 1 david root 11 Mar 2 21:31 go -> /usr/lib/go
drwxr-xr-x 2 david david 4.0K Mar 2 20:25 .nano
-rw-r--r-- 1 david david 675 Mar 2 20:03 .profile
答案 0 :(得分:0)
我假设您登录的用户没有运行go的权限。
要找出答案,请运行以下
$ which go
/usr/local/go/bin/go
$ ls -l $(which go)
-rwxr-xr-x 1 root wheel 12896684 Jan 24 01:28 /usr/local/go/bin/go
从上面我们知道,所有者是root
,组所有者是wheel
。
现在运行echo $USER
来查看是否有登录用户。
由于您被拒绝以$USER
的身份运行go,因此您可能需要将该用户添加到ls -l
中提到的组中。因此,运行以下内容。
$ usermod -aG $USER wheel
然后重新启动系统!然后再次尝试go env
看看是否有效。
-a用于附加 -G是要附加的组
记住wheel是我在运行ls -l
时获得的组所有者。您的可能会有所不同。
此usermod命令用于ubuntu。在您的情况下,它是raspberry pi,所以是raspbian OS。在不同操作系统之间找到正确的选项。