I use Go in my Ubuntu 16.04, and I set GOPATH
, GOROOT
and run simple code successfully.
Now I want to capture network packet by \"gopacket\
Your environment variables are not set for your root user. Don't try to run sudo go run ...
, instead build the binary without sudo, e.g. go build
or go install
, and then execute the binary with sudo
.
Let's say you're in the folder of main.go
, assumed it's called mycapt
:
go build
sudo ./mycapt
Or:
go install
sudo $GOPATH/bin/mycapt
sudo -E go run main.go
may work for you.
Here is what you can get about -E
option from man sudo
-E, --preserve-env
Indicates to the security policy that the user wishes to preserve
their existing environment variables. The security policy may return
an error if the user does not have permission to preserve the environment.