Update golang 1.10 to 1.13 with update-golang(subfinder install error fix)
SubFinder 설치 중
subfinder가 최근에 go 1.13 기준으로 문법이 변경됬는데, 하위 버전에선 메소드가 달라서 발생한 에러입니다. 저장소의 golang 버전이 1.13 이상일 경우 해당없겠지만, 하위버전인 경우 문제가 아래와 같은 에러가 발생합니다.
Update golang 1.10 to 1.13 with
원인이 버전인만큼, golang 버전 업그레이드로 해결이 가능하고, 저장소에서 지원하지 않는 경우는 아래 update-golang을 이용해서 간단하게 업데이트할 수 있습니다.
제가 사용하는 코드 일부는 1.13 이상이여서, 해당 서버에서 결국 go 바이너리까지 교체해주었습니다.
undefined: os.UserHomeDir
, undefined: strings.ReplaceAll
에러가 발생해서 해결 방법 정리해둡니다. 아마.. 현재 일부 피씨에서 설치 시 위와 같은 에러가 발생할텐데요, 원인은 golang 의 버전 문제입니다. subfinder가 최근에 go 1.13 기준으로 문법이 변경됬는데, 하위 버전에선 메소드가 달라서 발생한 에러입니다. 저장소의 golang 버전이 1.13 이상일 경우 해당없겠지만, 하위버전인 경우 문제가 아래와 같은 에러가 발생합니다.
hahwul@salamander:~/lab/salamander/salamander$ go get -v github.com/projectdiscovery/subfinder/cmd/subfinder
github.com/projectdiscovery/subfinder/pkg/runner
# github.com/projectdiscovery/subfinder/pkg/runner
../../../go/src/github.com/projectdiscovery/subfinder/pkg/runner/config.go:39:20: undefined: os.UserHomeDir
../../../go/src/github.com/projectdiscovery/subfinder/pkg/runner/enumerate.go:52:18: undefined: strings.ReplaceAll
Update golang 1.10 to 1.13 with update-golang
원인이 버전인만큼, golang 버전 업그레이드로 해결이 가능하고, 저장소에서 지원하지 않는 경우는 아래 update-golang을 이용해서 간단하게 업데이트할 수 있습니다.git clone https://github.com/udhos/update-golang
cd update-golang
sudo ./update-golang.sh
제가 사용하는 코드 일부는 1.13 이상이여서, 해당 서버에서 결국 go 바이너리까지 교체해주었습니다.
mv /usr/bin/go /usr/bin/go-1.10
mv /usr/local/go/bin/go /usr/bin/go