Во-первых, у меня нет опыта работы с go, я просто пытаюсь построить проект из github.
Моя проблема: когда я использую go build
в клонированном проекте go, я получаю кучу ошибок, подобных этой:
transform.go:28:2: cannot find package "github.com/disintegration/imaging" in any of:
/usr/lib/go/src/github.com/disintegration/imaging (from $GOROOT)
/home/marcus/go/src/github.com/disintegration/imaging (from $GOPATH)
imageproxy.go:34:2: cannot find package "github.com/gregjones/httpcache" in any of:
/usr/lib/go/src/github.com/gregjones/httpcache (from $GOROOT)
/home/marcus/go/src/github.com/gregjones/httpcache (from $GOPATH)
transform.go:29:2: cannot find package "github.com/muesli/smartcrop" in any of:
/usr/lib/go/src/github.com/muesli/smartcrop (from $GOROOT)
/home/marcus/go/src/github.com/muesli/smartcrop (from $GOPATH)
Что случилось: я сломал все, потому что начал удалять случайные каталогив надежде решить другую проблему, которую я имел.Я удалил свой каталог ~/go
и каталог ~/.cache/go-build
.
Что я пробовал: До сих пор, кроме удалений, вызвавших проблему, я пробовал go clean -cache -modcache
;Добавление флага -r
приводит к тем же ошибкам, что и выше.go build -a
также выдает те же ошибки.Я также попытался переустановить перейти с pacman -S go
.
Мой go env
:
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/marcus/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/marcus/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/lib/go"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build315222728=/tmp/go-build -gno-record-gcc-switches"
Я знаю, что делал неожиданные вещи, но я удивлен, что Го борется здесь.Как я могу заставить Go понять, что пакеты отсутствуют и что это следует исправить, загрузив их ?Или, как я могу очистить свою среду, чтобы удалить все еще присутствующие артефакты, которые заставляют Go думать, что пакеты все еще должны существовать?