1. 소개

Go 언어는 많은 글로벌 기업들이 효율성, 단순성, 빠른 런타임 속도를 이유로 선호하고 있다.

이 글을 통해 Linux 서버에 Go 언어 환경을 설치하는 방법을 공유한다.

2. 설치

2-1. 다운로드

$ wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

2-2. 압축해제

$ tar -xvzf go1.10.3.linux-amd64.tar.gz

그러면 go 라는 이름의 폴더에 압축이 풀린다.

3. 실행

나는 편의상 go 폴더를 다른 곳으로 옮겼다. 그리고 PATH를 설정했다.

$ mv go /lang
$ export PATH=$PATH:/lang/go/bin

실행!

$ go
Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        bug         start a bug report
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages

Use "go help [command]" for more information about a command.

Additional help topics:

        c           calling between Go and C
        buildmode   build modes
        cache       build and test caching
        filetype    file types
        gopath      GOPATH environment variable
        environment environment variables
        importpath  import path syntax
        packages    package lists
        testflag    testing flags
        testfunc    testing functions

Use "go help [topic]" for more information about that topic.

버전 확인 방법이다.

$ go version
go version go1.10.3 linux/amd64

4. 테스트 코드

간략한 테스트 코드를 만들어 실행했다.

package main

import "fmt"

func main() {
  fmt.Println("Welcome to Starbucks");
}

실행 결과 :

$ go run starbucks.go
Welcome to Starbucks

5. 패키지 설치

yum으로도 설치할 수 있다.

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
204 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package golang.x86_64 0:1.9.4-1.amzn2.0.2 will be installed
--> Processing Dependency: golang-src = 1.9.4-1.amzn2.0.2 for package: golang-1.9.4-1.amzn2.0.2.x86_64
--> Processing Dependency: golang-bin = 1.9.4-1.amzn2.0.2 for package: golang-1.9.4-1.amzn2.0.2.x86_64
--> Running transaction check
---> Package golang-bin.x86_64 0:1.9.4-1.amzn2.0.2 will be installed
---> Package golang-src.noarch 0:1.9.4-1.amzn2.0.2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch         Version                   Repository        Size
================================================================================
Installing:
 golang           x86_64       1.9.4-1.amzn2.0.2         amzn2-core       611 k
Installing for dependencies:
 golang-bin       x86_64       1.9.4-1.amzn2.0.2         amzn2-core        48 M
 golang-src       noarch       1.9.4-1.amzn2.0.2         amzn2-core       5.1 M

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 54 M
Installed size: 221 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): golang-1.9.4-1.amzn2.0.2.x86_64.rpm                 | 611 kB   00:00
(2/3): golang-src-1.9.4-1.amzn2.0.2.noarch.rpm             | 5.1 MB   00:00
(3/3): golang-bin-1.9.4-1.amzn2.0.2.x86_64.rpm             |  48 MB   00:01
--------------------------------------------------------------------------------
Total                                               50 MB/s |  54 MB  00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : golang-src-1.9.4-1.amzn2.0.2.noarch                          1/3
  Installing : golang-bin-1.9.4-1.amzn2.0.2.x86_64                          2/3
  Installing : golang-1.9.4-1.amzn2.0.2.x86_64                              3/3
  Verifying  : golang-src-1.9.4-1.amzn2.0.2.noarch                          1/3
  Verifying  : golang-1.9.4-1.amzn2.0.2.x86_64                              2/3
  Verifying  : golang-bin-1.9.4-1.amzn2.0.2.x86_64                          3/3

Installed:
  golang.x86_64 0:1.9.4-1.amzn2.0.2

Dependency Installed:
  golang-bin.x86_64 0:1.9.4-1.amzn2.0.2  golang-src.noarch 0:1.9.4-1.amzn2.0.2

Complete!