そろそろ Goを始めようと思う（revelフレームワークinstallではまった）

高速な Go言語、そろそろ勉強始めようと思ったのでまずインストールしたが
Segmentation fault: 11
使用OSは MacOS 10.9.5(Mavericks)

結論から言うと portでインストールすると Mercurialが正しくインストールされないので
brewに乗り換えました


# MacPortsを使い インストール

```bash:
$ sudo port selfupdate
$ sudo port install go
```

## テストコード

```go:helloworld.go
package main

import fmt "fmt"

func main() {
    fmt.Printf("Hello world\n")
}
```

## 実行
```bash:
$ go run helloworld.go
Hello world
```

goは正常にインストールできたようだ


# revel インストール

revelという PlayFlameworkを参考にして作られたフレームワークがあるので
それを使ってみようと思います


## go作業ディレクトリ設定

```bash:
$ mkdir ~/gocode
$ echo 'export GOPATH="$HOME/gocode"' >> ~/.bash_profile
$ source ~/.bash_profile
```
goは このGOPATH以下に ソースやパッケージ等が置かれます



## goコマンドを使い revelをインストール
githubよりインストール
```bash:
$ go get github.com/revel/revel
```

Mercurialが必要
revelはgitではなくMercurialでソース管理しているようです。
Mercurialがなかったのでインストールする事にします

## python＆Mercurialインストール
Mercurialはpythonで書かれているので 入ってなければpythonもインストール
```bash:
$ sudo install python27
$ sudo install Mercurial
```

## 確認
```bash:
$ hg
Segmentation fault: 11
```

あら・・ hg（Mercurial）が落ちました
どうやら　pythonがエラーで落ちるようです

pythonやMercurialを再インストール等を試みましたが　どうやっても落ちるので

Macportsを削除し brewにします


## Macports削除
```bash:
$ sudo port -fp uninstall installed
$ sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports
```

## brewのインストール
```bash:
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
Whoops, the Homebrew installer has moved! Please instead run:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Also, please ask wherever you got this link from to update it to the above.
Thanks!
```
homebrewのインストーラーのpathが移動したとの事なので 新しいURLでインストール

```bash:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

## brewでインストールし直す
```bash:
$ brew install python
$ brew install mercurial
```

## mercurial確認
```bash:
$ hg
-bash: hg: command not found
```

## hgへのパスが通ってないので通す
/usr/local/bin
を $PATHに追加

## mercurial再確認
```bash:
$ hg
Mercurial Distributed SCM

basic commands:

 add           add the specified files on the next commit
 annotate      show changeset information by line for each file
 clone         make a copy of an existing repository
 commit        commit the specified files or all outstanding changes
 diff          diff repository (or selected files)
 export        dump the header and diffs for one or more changesets
 forget        forget the specified files on the next commit
 init          create a new repository in the given directory
 log           show revision history of entire repository or files
 merge         merge working directory with another revision
 pull          pull changes from the specified source
 push          push changes to the specified destination
 remove        remove the specified files on the next commit
 serve         start stand-alone webserver
 status        show changed files in the working directory
 summary       summarize working directory state
 update        update working directory (or switch revisions)

use "hg help" for the full list of commands or "hg -v" for details
```
ok


# revelインストール
```bash:
$ cd ~/gocode
$ go get github.com/robfig/revel
$ go get github.com/robfig/revel/revel
$ go build -o bin/revel github.com/robfig/revel/cmd
```

## revel確認
```bash:
$ revel new test
$ revel run test
```
起動を確認したら
http://localhost:9000 にアクセス


It works!


が出ればオッケー