VS Code + Go : 환경변수 GOROOT 과 GOPATH > IT Note

본문 바로가기
사이트 내 전체검색

IT Note

VS Code + Go : 환경변수 GOROOT 과 GOPATH
0

View 9,869  | 작성일2017.12.28 10:07

본문

GOROOT 은 Go 를 설치한 경로

GOPATH 는 Go 의 사용자 환경 경로

정도로 보면 됩니다.

 

두 경로 밑으로 동일하게 bin , pkg , src 폴더가 있는데

 

GOROOT 의 bin 폴더에는 기본 설치된

go.exe , godoc.exe , gofmt.exe

실행 파일이 있고

GOPATH 에는 추가적으로 받은 툴 파일이 위치하게 됩니다.

(작업하면서 추가로 받아 설치하는 패키지들도 여기 밑으로 깔립니다)

 

go get github.com/uudashr/gopkgs/cmd/gopkgs

go get github.com/derekparker/delve/cmd/dlv

go get github.com/nsf/gocode

 

이 셋은 거의 고정으로 받게 되는 듯 한데

받고 나서 GOPATH 의 bin 폴더에 보면 dlv.exe , gocode.exe , gopkgs.exe 세 파일이

설치된걸 볼 수 있습니다.

 

Visual Studio 가 (Nuget 패키지 매니저로) 프로젝트 경로 밑에 packages 폴더에 다운로드한

외부 라이브러리들을 관리하는 것에 반해서

VS Code 는 GOPATH 밑에 pkg 폴더에다가 통으로 받아서 사용합니다. (프로젝트 구분 그런거 없이..)

 

프로젝트별 저장소 분리/버전관리 관점에서 보면 .. nuget 처럼 패키지 목록 정보만 들고 있다가

빌드시 자동 복구하듯 GO 도 그런식으로 (확장기능을 사용하건 스크립트를 짜넣건..) 하면

한 군데에 짬뽕으로 뒤섞여 있거나 말거나 별 상관 없을거 같아 보입니다.

(어.. 근데 방법은 있을거라 생각합니다만... 잘 모르겠습니다. 아직 VS Code 사용에 초보라 잘 모릅니다.. ;ㅅ;)

 

또 한가지 방법으론 받은걸 통으로 저장소에 올려버리는 거겠죠. (필요할 때만 수동으로 업데이트 시키고)

그래서 작업경로별로 따로국밥을 만들어 줄 때는 다음 처럼 해주면 됩니다.

 

1. 사용자 설정에서 go.gopath 값을 작업 폴더로 지정해주기

 

5e431c9c0ee2bd0c8895dce8bb9a4e0b_1514423099_6371.PNG
 

2. 작업 폴더 새로 만들 경우 (작업폴더를 프로젝트 폴더로 바라보는 관점) 터미널에서 기본 3종 셋 받아주기

 

go get github.com/uudashr/gopkgs/cmd/gopkgs

go get github.com/derekparker/delve/cmd/dlv 

go get github.com/nsf/gocode

이렇게 하고 저장소에 밀어 올리면

프로젝트간 패키지 짬뽕되는 것 피해서 관리할 수 있겠지용 !?

 

ps. 추가로 터미널에도 GOPATH 설정을 위해서

terminal.integrated.shellArgs.windows 에도 값을 적어 줍니다.

 

5e431c9c0ee2bd0c8895dce8bb9a4e0b_1514426106_3191.PNG

 

ps2. Ubuntu 

홈디렉토리 .bashrc 파일을 하나 복사한다음(.bashrc2 정도) GOAPTH=$PWD 를 추가

"terminal.integrated.shellArgs.linux": [

    "--rcfile", "~/.bashrc2"

]
37c6ca3bc53a89928d642c6ff7c5977d_1514883376_8101.PNG
 

ps3.

현재 Go 최신 버전인 1.9 의 경우 윈도우에서는 디버깅이 매우 많이 느린(작업이 불가능할정도) 문제가 있습니다.

Go 자체 보단 github.com/derekparker/delve/cmd/dlv  이 패키지가 문제.

(1.10 에서는 개선될거라는 소리가 있고요.. 1.8 은 문제없습니다.)

Linux 에서는 1.9 버전에서 작업해도 빠르게 디버깅 가능합니다.

댓글목록

등록된 댓글이 없습니다.

IT Tip&Tech 목록

게시물 검색

접속자집계

오늘
797
어제
522
최대
6,399
전체
660,255
Copyright © LittleCandle All rights reserved.
문의메일 : littlecandle99@gmail.com
모바일 버전으로 보기