728x90

오늘은 go 입니다. <못 먹어도 go> 라는 말이 있지만 golang 은 참 가까이 하기에 쉽지 않은 물건인 느낌입니다. OpenVPN 관련하여 오픈소스로 공개되어 있는 Web UI 가 go X beego 로 구성되어 있어서 간만에 go 환경을 맞추느라 고생을 했습니다.


오늘의 에러를 소개합니다.

beego 환경을 준비하기 위해서는 아래의 두가지 패키지를 설치해야 합니다. 

% go get -u github.com/astaxie/beego
% go get -u github.com/beego/bee

하지만 잘 되었을리가 없겠죠? beego 패키지를 설치하는 동안은 문제가 없었지만 개발도구인 bee 를 올리는 동안 묘한 에러가 발생했습니다. 

% go get -u github.com/beego/bee
# golang.org/x/sys/unix
go/src/golang.org/x/sys/unix/fcntl_darwin.go:11:9: undefined: fcntl
go/src/golang.org/x/sys/unix/fcntl_darwin.go:16:12: undefined: fcntl
go/src/golang.org/x/sys/unix/fcntl_darwin.go:22:12: undefined: fcntl
go/src/golang.org/x/sys/unix/ioctl.go:20:9: undefined: ioctl
go/src/golang.org/x/sys/unix/ioctl.go:29:9: undefined: ioctl
go/src/golang.org/x/sys/unix/ioctl.go:38:9: undefined: ioctl
go/src/golang.org/x/sys/unix/ioctl.go:48:9: undefined: ioctl
go/src/golang.org/x/sys/unix/ioctl.go:60:9: undefined: ioctl
go/src/golang.org/x/sys/unix/syscall_bsd.go:645:10: undefined: mmap
go/src/golang.org/x/sys/unix/syscall_bsd.go:646:10: undefined: munmap
go/src/golang.org/x/sys/unix/ioctl.go:60:9: too many errors

% bee
zsh: command not found: bee

 

문제는 golang 의 버전

여기저기 검색을 해보았지만 딱히 상황에 걸맞는(?) 해결책을 찾기가 어려웠습니다. 그러다 중국어로 된 커뮤니티 한 곳에서 같은 질문을 한 스레드를 찾았고 답변으로 "go 업그레이드 하니까 되던데?" 를 찾았습니다. 네, 재빨리 버전을 확인하니 근래의 버전과 꽤 차이가 나고 있었습니다. 

// 업데이트 전
% go version
go version go1.10.3 darwin/amd64

// 업데이트 후
% go version
go version go1.15.5 darwin/amd64

1.10.3 에서 나던 오류가 1.15.5 로 업그레이드 한 이후에는 깨끗히 사라졌습니다. go get 을 하는 과정에 뭔가 조금 더 친절한 에러 메세지가 나왔다면 좋겠을텐데 하는 생각이 들더군요. 사실 go 로 큰 규모의 개발을 하고 있지는 않아 쉽게 업데이트 했지만, go binary 를 업데이트하면서 다른 문제가 생길수도 있지 않을까? 하는 생각도 들었습니다. 

 

잘 동작하는 bee!

이제 다시 bee 를 설치하고 bee 를 실행해 보았습니다. 네, 잘 돌아가네요! 그런데 bee는 2.0.0 에서 1.12.3 으로 다운그레이드 하라고... 허허... 천천히 해보기로 하고... 포스팅을 마무리 해봅니다. 

% go get -u github.com/beego/bee
lineplus@AL01249083 ~ %
lineplus@AL01249083 ~ % bee
2020/11/30 19:59:33 INFO     ▶ 0001 Getting bee latest version...
2020/11/30 19:59:33 WARN     ▶ 0002 Update available 2.0.0 ==> 1.12.3
2020/11/30 19:59:33 WARN     ▶ 0003 Run `bee update` to update
2020/11/30 19:59:33 INFO     ▶ 0004 Your bee are up to date
Bee is a Fast and Flexible tool for managing your Beego Web Application.

You are using bee for beego v2.x. If you are working on beego v1.x, please downgrade version to bee v1.12.0

USAGE
    bee command [arguments]

AVAILABLE COMMANDS
...
728x90

+ Recent posts