高速な Go言語、そろそろ勉強始めようと思ったのでまずインストールしたが
Segmentation fault: 11
使用OSは MacOS 10.9.5(Mavericks)
結論から言うと portでインストールすると Mercurialが正しくインストールされないので
brewに乗り換えました
MacPortsを使い インストール
$ sudo port selfupdate
$ sudo port install go
テストコード
package main
import fmt "fmt"
func main() {
fmt.Printf("Hello world\n")
}
実行
$ go run helloworld.go
Hello world
goは正常にインストールできたようだ
revel インストール
revelという PlayFlameworkを参考にして作られたフレームワークがあるので
それを使ってみようと思います
go作業ディレクトリ設定
$ mkdir ~/gocode
$ echo 'export GOPATH="$HOME/gocode"' >> ~/.bash_profile
$ source ~/.bash_profile
goは このGOPATH以下に ソースやパッケージ等が置かれます
goコマンドを使い revelをインストール
githubよりインストール
$ go get github.com/revel/revel
Mercurialが必要
revelはgitではなくMercurialでソース管理しているようです。
Mercurialがなかったのでインストールする事にします
python&Mercurialインストール
Mercurialはpythonで書かれているので 入ってなければpythonもインストール
$ sudo install python27
$ sudo install Mercurial
確認
$ hg
Segmentation fault: 11
あら・・ hg(Mercurial)が落ちました
どうやら pythonがエラーで落ちるようです
pythonやMercurialを再インストール等を試みましたが どうやっても落ちるので
Macportsを削除し brewにします
Macports削除
$ 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のインストール
$ 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でインストール
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brewでインストールし直す
$ brew install python
$ brew install mercurial
mercurial確認
$ hg
-bash: hg: command not found
hgへのパスが通ってないので通す
/usr/local/bin
を $PATHに追加
mercurial再確認
$ 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インストール
$ 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確認
$ revel new test
$ revel run test
起動を確認したら
http://localhost:9000 にアクセス
It works!
が出ればオッケー