読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

Mac ( OSX ) Linux ( Ubuntu , CentOS ) に Go言語 を導入する

f:id:mochizuki_p:20170106195828p:plain

Go言語は簡潔、平易で生産性の高い、型推論付き静的型付きプログラミング言語として知られています。 従来であれば高度なプログラミング能力が必要だった並行プログラミングをgoroutineと呼ばれる仕組みで容易に実現できるなど、いわば、21世紀のC言語として現在注目を集めています。

今回はそのGo言語の、Mac(OSX)とLinuxでの導入に焦点を置いて紹介してみたいと思います。

Go言語の公式サイトは以下のURLからジャンプできます。

The Go Programming Language

Mac (OSX)

事前にコンパイラのGCCまたはClangをインストールしておく必要があります。

コンパイラを入手するにはXCodeをインストールして、付属しているコンパイラを利用するのが一番簡単です。

brewでインストールする

もしHomebrewがインストールされているばあいは以下のコマンドを入力するのが一番簡単です。

brew install go

成功すれば以下のようになります。/Users/の後の部分はあなたの名前になります。

Updated 1 tap (homebrew/core).

==> Updated Formulae

gammu         kotlin        libdap        nghttp2       quantlib      xonsh

harfbuzz ✔    lastpass-cli  lsyncd        node-build    xapian



==> Downloading https://homebrew.bintray.com/bottles/go-1.7.4_1.yosemite.bottle.tar.

Already downloaded: /Users/mochizuki/Library/Caches/Homebrew/go-1.7.4_1.yosemite.bottle.tar.gz

==> Pouring go-1.7.4_1.yosemite.bottle.tar.gz

==> Caveats

As of go 1.2, a valid GOPATH is required to use the `go get` command:

  https://golang.org/doc/code.html#GOPATH



You may wish to add the GOROOT-based install location to your PATH:

  export PATH=$PATH:/usr/local/opt/go/libexec/bin

==> Summary

🍺  /usr/local/Cellar/go/1.7.4_1: 6,438 files, 250.7M

覚えておいて欲しいのが

  export PATH=$PATH:/usr/local/opt/go/libexec/bin

の部分です。これはのちにパッケージを導入するのに利用するので注意してください。

Linux (Ubuntu CentOS)

apt-getなどのツールを使うと簡単です。

Ubuntuなど

sudo apt-get install golang

CentOS

yum install golang

テスト

go version

> go version go1.2.1 linux/amd64

tarballから導入

Downloads - The Go Programming Language

から最新バージョンを確認します。

一般的なLinuxサーバーの場合はamd64を選択すれば大丈夫です。

今回は最新バージョンの1.7.4を導入します。

wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz

そして解凍して/usr/local以下に配置

sudo tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz

パスを通します。永続化させる場合は.bascrcに追記しておくとよいでしょう

export PATH=$PATH:/usr/local/go/bin

導入に成功したらこのコマンドを打つと

go version

以下のようになるはずです。

go version go1.7.4 linux/amd64

試しにコンパイル

package main

import "fmt"

func main() {
    fmt.Printf("hello World")
}

うまくいきました。

go run test.go

> Hello World

REPL - 対話的実行環境を実行する

プログラミング言語の学習にはREPL "対話的実行環境"があると何かと便利です

有志の方がgoreと呼ばれるREPLを公開しています

Goでのパッケージの導入にはgo getを利用します。

しかし、その利用の前に環境変数のGOPATHを導入する必要があります。

Mac (OSX)

以下のコマンドでGOPATHを設定します。

export GOPATH=$HOME
export GOROOT=/usr/local/opt/go/libexec

そして先ほどメモしておいたパスを入力

  export PATH=$PATH:/usr/local/opt/go/libexec/bin
  export PATH=$PATH:$HOME/go/bin

これで準備が整いました。REPLをインストールして、立ち上げてみましょう。

インストール

 go get github.com/motemen/gore

そして

gore 

試しに足し算を実行

gore version 0.2.6  :help for help
gore> 1 + 2
3