2016/12/21更新

[Go] MacにGo言語をインストール&セットアップする

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
とうとう仕事でもGo言語を触れる機会がやってきました。今日はMacへの導入手順をブログに書きたいと思います。

画像

目次




Go言語とは

Go言語はGoogleが開発したプログラミング言語で、最近のLL言語のような書きやすさを持ちつつ、C言語のような構造体やポインターもあるプログラミング言語です。技術書を読んでいると「◯◯の動きは実装系に依る」とか書いてある点はC言語ぽいなーと感じます。色々とルールはあるので覚えるのは少し大変ですが、型付き言語なのでPHPやRubyやPythonのように大規模に開発しちゃうと大変〜ってことは少なさそうです(所感)。

本家のサイトはこちらにあります。
https://golang.org/

そして今回のセットアップ手順は基本的には以下に書いてあることを行なっていきます。
https://golang.org/doc/install



MacにGo言語をインストールしてセットアップする

では本題に入りますー。

Go言語をダウンロードしてインストール

Macの場合はインストーラーが用意されているのでそれを使います(下記)。brewコマンドでも入りますがバージョンが古いので、インストーラーの方が良いです。
https://golang.org/dl/

インストーラーの手順に従ってポチポチしていけばインストールができます。
インストールが終わったらターミナルを開いて、以下のコマンドが動けばOKです。
$ which go
/usr/local/bin/go
標準では/usr/local/go/binにインストールされるとのことで、もし別の場所にしたい場合にはこちらのドキュメントの「Installing to a custom location」を参照してください。


Go用ディレクトリの作成と環境変数のセットアップ

続いてGoで書いたプログラムを置いたり、コンパイルした結果を置くためのディレクトリを作成します。ここではホームディレクトリ以下にgoディレクトリを作成します。
$ mkdir $HOME/go
また、上記ディレクトリを$GOPATHという環境変数を設定しておきます。これは開発用のワークスペースの位置を指定しています。
# ~/.bash_profile
export GOPATH=$HOME/go
その他にもGOROOTなどの設定も必要ですが、こちらはインストーラーがよしなにやってくれます。GOPATHは以下のコマンドで確認できます。
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/munesadayohei/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/pl/10bbvn8d2mg7mtchlxrh_qs00000gp/T/go-build228965600=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
あと、上記のgoコマンドを動かすためにPATHに追加する必要がありますが、その辺もインストーラーがよしなにやってくれています。
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.5/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Users/munesadayohei/.nvm/versions/node/v6.2.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/local/go/bin:/Library/TeX/texbin:/Users/munesadayohei/local/ImageMagick-6.8.9/bin/
だいぶ汚いですが(w)、/usr/local/go/binがPATHに含まれていることがわかります(goコマンドがあるディレクトリです)。


ちっちゃなプログラムを作って動作確認する

それでは最後にGo言語でちっちゃなプログラムを作成してみます。
まずはソースファイルを置くディレクトリを作成します。
$ mkdir -p $GOPATH/src/github.com/yoheiMune/hello
そして上記のディレクトリ内に、以下の内容のhello.goを配置します。
package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}
これでソースコードは完成です。

それではコンパイルしてみます。コンパイルにはgo installコマンドを使います。
$ go install github.com/yoheiMune/hello
何もメッセージが出ずに終了すればOKです。ここで例えば$GOPATHの値を間違えていたり(以下では$HOME/workにしちゃった場合)すると、以下などのエラーが発生します。
$ go install github.com/yoheiMune/hello
can't load package: package github.com/yoheiMune/hello: cannot find package "github.com/yoheiMune/hello" in any of:
    /usr/local/go/src/github.com/yoheiMune/hello (from $GOROOT)
    /Users/munesadayohei/work/src/github.com/yoheiMune/hello (from $GOPATH)
エラーが出たら慎重に読んで修正します。

コンパイルができたら実行してみます。以下のように実行できます。
$ $GOPATH/bin/hello
hello, world
これでGoが動くことを確認できました。よかったよかった。



最後に

今日はGo言語のインストール&セットアップ手順でした。/usr/local/go/binが想定されていたり、$GOPATHを設定したりなど、ちょっとだけ考慮するところがあるので忘れないようにメモメモ。Go言語については今後も色々とブログを書けたらと思います。

最後になりますが本ブログでは、Go言語、Node.js、フロントエンド・Python・Linux・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。