root@kali:~/subfinder# go build
main.go:15:2: cannot find package
"github.com/subfinder/subfinder/libsubfinder/helper" in any of:
/usr/lib/go-1.11/src/github.com/subfinder/subfinder/libsubfinder/helper
(from $GOROOT)
/root/go
/src/github.com/subfinder/subfinder/libsubfinder/helper (from $GOPATH)
main.go:16:2: cannot find package "github.com/subfinder/subfinder/subf" in
any of:
/usr/lib/go-1.11/src/github.com/subfinder/subfinder/subf (from $GOROOT)
/root/go
/src/github.com/subfinder/subfinder/subf (from $GOPATH)
내 버전의 경로는 다음과 같습니다.
root@kali:~# go version
go version go1.11.4 linux/386
My Go 환경:
root@kali:~# go env
GOARCH="386"
GOBIN="/root/go_projects/bin"
GOCACHE="/root/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="386"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go
"
GOPROXY=""
GORACE=""
GOROOT="/usr/lib/go-1.11"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go-1.11/pkg/tool/linux_386"
GCCGO="gccgo"
GO386="387"
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 -m32 -pthread -fmessage-length=0 -fdebug-prefix-
map=/tmp/go-
build284184378=/tmp/go-build -gno-record-gcc-switches"
내 이력서
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n || true
export PATH=$PATH:/usr/local/go/bin
export GOPATH="$HOME/go_projects"
export GOBIN="$GOPATH/bin"
답변1
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
환경 목록 (representation) 과 (representation) 사이의 연결 끊김도 있습니다 GOPATH="$HOME/go_projects"
. .profile
루트가 아닌 사용자를 나열 하고 go build
환경을 루트로 실행하고 나열하기 때문이라고 가정합니까? 아니면 .profile
로그인 셸이 아니거나 다른 프로필이 있는 경우( .bash_profile
어떤 프로필이 우선 적용되는지 등) 읽을 수 없게 만드는 또 다른 문제가 있을 수도 있습니다.
루트 설정에서 후행 개행에 문제가 있는 것 같습니다 $GOPATH
(큰따옴표는 두 번째 줄에서만 끝나는 것을 볼 수 있습니다).가능한이러한 문제 중 일부가 발생하므로 이 문제도 해결해야 합니다.