Go 1.16 설치(Ubuntu 20.04)

Aiden·2021년 7월 8일
post-thumbnail

이전 Go언어 테스트 이후 1.16.5로 마이너버전이 업데이트 되었다.

하여 기존에 설치된 버전을 업그레이드한다.

현 버전 확인

$ go version
go version go1.16.3 linux/amd64

설치

최신버전 확인

최신버전은 https://golang.org/dl/ 에서 확인 가능하다.

다운로드

확인한 최신버전을 GOLANG_VERSION 변수에 할당한다.

$ GOLANG_VERSION=1.16.5
$ curl -LO https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz

압축 해제

$ tar -C /usr/local -xzf go${GOLANG_VERSION}.linux-amd64.tar.gz

환경변수 설정

버전 업그레이드인 경우 이미 설정 되어있을 것이므로, 이 과정은 생략해도 된다.

bash shell 을 사용하는 경우, ~/.zshrc~/.bashrc로 변경하면 된다.

  • GOROOT : Go가 설치된 경로
  • GOPATH: 패키지, 소스코드 등이 위치할 디렉토리
$ echo 'export GOROOT=/usr/local/go' >> ~/.zshrc
$ echo 'export GOPATH=$HOME/go' >> ~/.zshrc
$ echo 'export PATH=$GOPATH/bin:$GOROOT/bin:$PATH' >> ~/.zshrc
$ source ~/.zshrc

GOPATH 관련(Option)

Golang은 Python, Nodejs 등 처럼 완전히 자유롭게 원하는 디렉토리에 프로젝트를 만들 수 없다.

환경변수 설정시 GOPATH를 $HOME/go 로 지정했으므로, HOME 경로에 go 디렉토리가 있어야한다.

없다면, 아래와 같은 폴더 구조로 생성해준다.(특히 src 포함한 하위 디렉토리)

이 경로 외에 작업하면? 별도의 파일을 패키지로 작성할 때 쓸 수 없게 된다

.
├── bin
├── pkg
└── src
    ├── github.com
    │   └── aiden
    ├── golang.org
    └── google.golang.org

src 하위 디렉토리는 다운받아온 경로 별 코드 정리 목적으로 디렉토리를 구분한다.
따라서, 내가 작성할 코드는 src/github.com/aiden 경로에서 작성한다.
+추가: 의존성 관리를 위한 방법으로 위에 기술한 Go Path는 1.11 버전 이하에서 사용하던 방식이며, 이후 Go Module의 등장으로 Go Path는 사용하지 않는다. 이에 대해서는 더 자세히 확인 후 새로 포스팅 해야겠다.

확인

버전

$ go version                           
go version go1.16.5 linux/amd64

환경변수

$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/aiden/.cache/go-build"
GOENV="/home/aiden/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/aiden/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/aiden/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.16.5"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build953170992=/tmp/go-build -gno-record-gcc-switches"
profile
기억이 안되면 기록이라도🐳

0개의 댓글