TIPS

[TIPS] gvm으로 Golang 버전 관리하기: go 설치, GOPATH 설정

Gray Park 2023. 4. 7. 14:00
728x90
반응형

 

Go가 처음 나왔을 때부터 이목을 끌던 귀여운 캐릭터 친구.... 멍청해보여서 더 귀엽당ㅋㅋ

 

GVM: Go Version Manager

GVM은 NVM 처럼 언어의 버전을 관리하는 매니저다. 당연히 공식지원이 아니라 오픈소스이다.

 

공식 Github: https://github.com/moovweb/gvm

 

GitHub - moovweb/gvm: Go Version Manager

Go Version Manager. Contribute to moovweb/gvm development by creating an account on GitHub.

github.com

 

다음의 명령어를 통해 gvm을 설치할 수 있다. 그러나! gvm을 설치하려면 go가 설치돼있어야 한다. ㅋㅋㅋㅋㅋㅋㅋ 엄청난 역설...

 

golang 설치때문에 엄청난 노고를 들여본 입장에서 감히 말해보자면, gopath 설정은 cosmos-sdk에서 알려준 게 최고다. 그래서 여기서도 이걸 기준으로 설명하겠다.

 

Golang 설치 (Go 설치)

다음은 운영체제별 Golang 설치 방법이다.

  • Linux(Ubuntu)
sudo apt-get update
sudo apt-get install -y make gcc
wget https://go.dev/dl/go1.18.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.5.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
  • macOS / Window는 공식 홈페이지에서 다운받아 설치하자

공식 홈페이지: https://go.dev/dl/

 

All releases - The Go Programming Language

 

go.dev

 

GOPATH 설정

Golang은 GOPATH를 설정해줘야 한다. 특히 unix 계열에서는 필수다. 그렇지 않으면 바이너리 파일 실행때문에 매번 노가다를 해야할 수도 있다.

  • macOS / Linux(Ubuntu) / Unix

다음의 명령어를 ~/.bash_profile 에 추가한다. 파일이 없다면 하나 만들어주자.

export GOPATH=/usr/local/go/bin
  • Windows

1. 윈도우는 환경설정 PATH 추가를 해줘야한다. 먼저 윈도우키를 누르고 "환경 변수"를 검색한다.

2. 그러면 고급 시스템 설정 > 환경 변수로 진입하게 되는데, 시스템 변수 편집을 클릭한다.

3. GOPATH를 찾아보고 없으면 추가한다.

4. 다음의 링크를 참조해서 상세히 설정하자

windows go 설치 링크

 

Go언어 - Golang 설치, Golang 환경 변수 설정, Hello World 출력

Go언어 - Golang 설치, Golang 환경 변수 설정, Hello World 출력 구글에 들어가셔서 golang 검색 후 상단 부분에 있는 https://go.dev 눌러 들어가 주세요 https://go.dev/ The Go Programming Language DevOps & Site Reliability Wi

jwtspro.com

 

 

이제 다시 본론으로 돌아와서, GVM을 설치하고 사용해보자. 명령어를 사용하므로 당연히 터미널에서 진행한다.

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

// output

Cloning from https://github.com/moovweb/gvm.git to /Users/gyuhapark/.gvm
Created profile for existing install of Go at "/usr/local/go"
Installed GVM v1.0.22

Please restart your terminal session or to get started right away run
 `source /Users/gyuhapark/.gvm/scripts/gvm`

터미널에 이미지를 넣어놔서 따로 복사해왔다.

가장 아래에 있는 명령어를 입력해서 지금 터미널에 반영해주자.

source ~/.gvm/scripts/gvm

이제 gvm 설치가 끝났다. 확인해보자

gvm version
# 출력
# Go Version Manager v1.0.22 installed at /Users/gyuhapark/.gvm

 

버전관리하기

gvm을 설치하면 현재 사용중인 버전이 없다. 따라서 현재 설치된 버전을 default로 한 번 잡아줘야 한다.

먼저 현재 설치된 golang을 살펴보자

gvm list

# 출력
# gvm gos (installed)
# 
#    system

nvm에서 사용할 node버전을 선택하듯이 동일한 명령어로 화면에 나타난 go 버전을 선택해야 한다.

이때, 우리는 초기 설정을 하고 있으므로 --default 옵션을 추가해보자

gvm use system --default

다시 gvm list를 해보면 다음과 같이 화살표로 현재 사용중인 go 버전이 표시된다

gvm list

# 출력
# gvm gos (installed)
#
# => system
#

필자는 현재 1.20 버전을 사용중인데 cosmos-sdk의 테스트넷 노드를 운영하기 위해서는 1.18 버전을 사용해야 한다.

일단 버전 확인 한 번 해주겠다.

gvm listall

# 출력
#   go1
#   go1.0.1
#   go1.0.2
#   go1.0.3
#   go1.1
#   ...중략...
#   go1.18
#   go1.18beta1
#   go1.18beta2
#   go1.18rc1
#   go1.18.1
#   ...중략...
#   release.r58.2
#   release.r60.1
#   release.r60.2
#   release.r60.3

그 다음은 원하는 버전을 설치해주자

gvm install go1.18

# 출력
# Downloading Go source...
# Installing go1.18...
#  * Compiling...
# go1.18 successfully installed!

다음 명령어를 통해 버전을 변경한다

gvm use 1.18

# 출력
# Now using version go1.18

다시 리스트를 확인해보면 다음과 같다

gvm list

# gvm gos (installed)
#
# => go1.18
#    system

go 버전을 확인해보면?

go version
# go version go1.18 darwin/arm64

잘 나온다 ㅎㅎ

 

참고로 터미널을 껐다가 키면 다시 system 버전으로 선택이 된다.

zsh를 사용중이고, 터미널을 껐다가 켰는데 command not found 명령어가 뜬다면 ~/.zshrc 파일에 다음과 같이 추가해주자.

# ~/.zshrc 파일에 추가
source ~/.gvm/scripts/gvm

 

728x90
반응형