首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用sudo命令运行go程序

无法使用sudo命令运行go程序
EN

Stack Overflow用户
提问于 2019-04-25 14:42:13
回答 2查看 2.3K关注 0票数 1

我是go编程语言的新手。

我在my-s3zipper.go程序中使用下面的包。

代码语言:javascript
运行
复制
"github.com/AdRoll/goamz/aws"
"github.com/AdRoll/goamz/s3"

当我用本地用户运行我的go程序时,它运行得很好。下面是go run命令。

代码语言:javascript
运行
复制
go run my-s3zipper.go
Running on port 80

当我用sudo运行我的go程序时,它没有运行并且抛出错误。下面是使用sudo的go run命令。

代码语言:javascript
运行
复制
sudo go run my-s3zipper.go 



my-s3zipper.go:19:5: cannot find package "github.com/AdRoll/goamz/aws" in any of:
        /usr/lib/golang/src/github.com/AdRoll/goamz/aws (from $GOROOT)
        /root/go/src/github.com/AdRoll/goamz/aws (from $GOPATH)
my-s3zipper.go:20:5: cannot find package "github.com/AdRoll/goamz/s3" in any of:
        /usr/lib/golang/src/github.com/AdRoll/goamz/s3 (from $GOROOT)
        /root/go/src/github.com/AdRoll/goamz/s3 (from $GOPATH)
my-s3zipper.go:21:5: cannot find package "github.com/garyburd/redigo/redis" in any of:
        /usr/lib/golang/src/github.com/garyburd/redigo/redis (from $GOROOT)
        /root/go/src/github.com/garyburd/redigo/redis (from $GOPATH)

有人能帮我解决这个问题吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-04-25 16:49:49

这可能会行得通

代码语言:javascript
运行
复制
sudo -E go run my-s3zipper.go

从sudo手册页

-E‘-E (保留环境)选项向安全策略指示用户希望保留其现有环境变量。如果指定了-E选项,而用户没有保留环境的权限,则安全策略可能会返回错误。

票数 1
EN

Stack Overflow用户

发布于 2019-04-25 16:24:04

尝试:

代码语言:javascript
运行
复制
sudo GOPATH="$GOPATH:/your/home/go/path" go run my-s3zipper.go

代码语言:javascript
运行
复制
su
GOPATH="$GOPATH:/your/home/go/path"
go run my-s3zipper.go

原因可能是您的用户和root的GOPATH变量不同。

您可以通过在用户登录时执行echo $GOPATH来检测/your/home/go/path

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55843277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档