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

Go言語 をインストール・設定までの覚書き

目的

Go言語を覚えてある程度使えるレベルにまでなるために、
学習時点での覚書きを残して。まずは、とっかかりとして、
インストールから簡単に動かせるまでを覚書きしておく。

開発環境

Mac OS X v10.9.1 ( Intel Core i5)
Go v1.2

インストール・設定

% cd /usr/local/src/
% wget https://go.googlecode.com/files/go1.2.darwin-amd64-osx10.8.tar.gz
% tar zxvf go1.2.darwin-amd64-osx10.8.tar.gz
% mv go /usr/local/go1.2
% ln -s /usr/local/go1.2 /usr/local/go

環境パスを.zshrcに予め読み込まれるように追記する。

% cd ~
% vi ~/.zshrc

追記する内容は次の通り。

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

パス設定を反映して、goコマンドで、パスが通っていることを確認。

% source ~/.zshrc
% 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
    env         print Go environment information
    fix         run go tool fix on packages
    fmt         run gofmt on package sources
    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         run go tool vet on packages

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

Additional help topics:

    c           calling between Go and C
    gopath      GOPATH environment variable
    importpath  import path syntax
    packages    description of package lists
    testflag    description of testing flags
    testfunc    description of testing functions

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

動作確認

テスト用にhello worldをgoで書いてみる。
ファイル名は、hello.go

package main

import "fmt"

func main() {
     fmt.Printf("hello, world\n")
}

goのrunで実行する。

% go run hello.go
hello, world

開発環境を整える

Goでの開発を行いやすくするために、Go Code を利用する。
Go codeでの使い方tipsなどは、また別途で書くつもり。

開発環境のエディタは、Emacsを利用するため、まずは
シンタックスハイライトと自動補完できるように環境を整える。
How to Write Go Code - The Go Programming Language と、Screen cast を参考に進める。

Go Codeのインストール

まずは、$GOPATHを設定する。

% vi $HOME/.zshrc

環境パスを次のように修正。

export GOPATH=$HOME/Sandbox/golang/gocode
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin


Go Codeをダウンロードする。

% source $HOME/.zshrc
% go get -u github.com/nsf/gocode
% ls $GOPATH
bin/ src/


Go Codeで、さっき書いたhello.goをプロジェクトとして、installして
バイナリとして動かしてみる。

% mkdir -p $GOPATH/src/github.com/nsf/hello
% cp hello.go $GOPATH/src/github.com/nsf/hello/hello.go
% cd $GOPATH/src/github.com/nsf/hello/
% go install
% ls $GOPATH/bin
hello
% GOPATH/bin/hello
hello, world

Emacs/自動補完設定(go-autocomplete)

Emacsの前提の設定として、auto-compelete-modeがインストールされていること.
go-autocomplete.el ファイルを、emacsの設定ファイルを置いてある場所にコピーさせればok.

% cp $GOPATH/src/github.com/nsf/gocode/emacs/go-autocomplete.el $HOME/.emacs.d/elisp/.

設定ファイル(.emacs)に以下の記述を追記.

(require 'go-autocomplete)
(require 'auto-complete-config)

Emacs/シンタックスハイライト(go-mode)

goをインストールしたディレクトリのmisc/emacs配下にハイライト用のelispファイルが置いてあるのでコピーしてくる。
ちなみにgithubにもgo-mode.elはある.

% cp $GOROOT/misc/emacs/go-mode-load.el $HOME/.emacs.d/elisp/.
% cp $GOROOT/misc/emacs/go-mode.el $HOME/.emacs.d/elisp/.

設定ファイル(.emacs)に以下の記述を追記.

;; go-mode
(add-to-list 'load-path "go-mode-load.el" t)
(require 'go-mode-load)

まとめ

  • 環境設定でコード書きやすい状況にするのは重要。
  • まだまだ開発しやすい環境にする設定はあるようなので調整してみる。
  • gocodeを使うことでテストコードを書くこともできるのでその部分も深く触ってみる。
  • revel使ってサンプルつくるところまではもっていきたい。