Сетевое пространство имен не работает с vpn

Golang весьма самоуверен в отношении того, в каких каталогах должен находиться ваш исходный код. (И тем не менее, он часто не дает вам полезного или действенного сообщения об ошибке по этому поводу.)

В любом случае, если ваш пакет называется github.com/subfinder/subfinder, то для его сборки вам необходимо иметь исходные коды для него, хранящиеся в $GOPATH/src/github.com/subfinder/subfinder, что в вашем случае будет/root/go/src/github.com/subfinder/subfinder(из списка окружения, не .profile.)

Один из способов гарантировать, что он будет извлечен в правильном месте, — это использовать go getдля его извлечения (и, при необходимости, сборки/установки. )Использование go getс опцией -dпросто загрузит исходники, так что вы сможете изменить их и собрать, если вам нужно сделать это на отдельном шаге.

$ go get -d github.com/subfinder/subfinder

Эта команда доставит его в первый каталог в вашем $GOPATH(, который на самом деле может быть списком каталогов, разделенных :, подобно тому, как работает $PATH, в маловероятном случае вы хотите искать несколько базовых каталогов. для пакетов.)


В вашем сообщении также есть несоответствие между списком окружения (, который говорит GOPATH="/root/go"), и .profile(, который говорит GOPATH="$HOME/go_projects". )Я полагаю, это потому, что вы перечисляете .profileне -пользователя root, в то время как вы используете go buildи перечисляете среду как root? Или, может быть, у вас есть другая проблема, из-за которой ваш .profileне читается, например, это не оболочка входа в систему, или у вас есть другой файл профиля, такой как .bash_profile, который имеет приоритет, и т. д.

Кажется, у вас также есть проблема с завершающей новой строкой в ​​настройке $GOPATHкорня (. Вы можете видеть, что двойная кавычка закрывается только во второй строке ), которая может быть вызывая некоторые из этих проблем... Так что, чтобы быть уверенным, вам, вероятно, следует попытаться исправить и это.

2
17.02.2021, 09:35
0 ответов

Теги

Похожие вопросы