こんばんは。血便がひどくて病院いこうと思って午前休取ったけど眠すぎて睡眠に使った僕です。
はじめに
Golang でコマンドライン Fuzzy Finder 「gof」作った。 - Qiita [キータ]
Fuzzy Finder ユーザーだったので、使ってみたくなって golang の環境を作ってみました。
インストール
HomeBrew で入る。最新は 1.2
。
$ brew update
$ brew install go
もともと go
を cd
+ ls
に使っていたので、以下のように変更してどちらでも使えるようにした。これのせいで試そうという気が起きていなかったので、golang をやらない理由がなくなってしまった。A Tour of Go (日本語) とかやるべきな気がする。
-function go() { cd $1; ls } +function go() { + if [ -d $1 ]; then + cd $1 && ls + else + /usr/local/bin/go $@ + fi +}
$GOPATH
golang は標準でモダンな感じのパッケージ管理をサポートしている。go get <githubのURL>
とかできて格好いい。
これを使うには、パッケージのインストール先を $GOPATH
で指定しておく必要がある。
どこにするのが主流なのか分からなかったので、とりあえず ~/.gopath
を掘って指定しました。
ついでに $GOPATH/bin
を $PATH
に追加。
$ mkdir ~/.gopath $ echo 'export GOPATH=~/.gopath' >> ~/.zshenv $ echo 'export PATH=$GOPATH/bin:$PATH' >> ~/.zshenv
Twitter で聞いてみたら、以下のような回答をいただきました。1.2
しか入れてないので問題ないけど、たしかに今後はバージョンで分けた方がよさそう。
@tomohi_ro 僕は $HOME/.go/${GO_VERSION} みたいにしてますねー
— Hirokazu Yoshida (@yoppiblog) 2013, 12月 10
gof のインストール
Installation 書いてあるように以下のようにしてインストールできる。
$ go get github.com/mattn/gof
最初、Mac だと問題があって以下のようなエラーが出ていた。
$ go get github.com/mattn/gof # github.com/mattn/gof .gopath/src/github.com/mattn/gof/tty_unix.go:13: undefined: syscall.TCGETS
@mattn_jp はい。mac です。
— Tomohiro Nishimura (@tomohi_ro) 2013, 12月 10
@mattn_jp おお、ありがとうございます。了解です!
— Tomohiro Nishimura (@tomohi_ro) 2013, 12月 10
@mattn_jp 問題なく入りました!
— Tomohiro Nishimura (@tomohi_ro) 2013, 12月 10
Add tty_bsd.go for Mac OS X/FreeBSD by gunyarakun · Pull Request #1 · mattn/gof
どうやら Mac だとコンパイルできていなかったようでした。
$ go get -u github.com/mattn/gof $ gof --help Usage of gof: -c=false: Cat the file -d="": Root directory -e=false: Edit selected file -l=false: Launcher mode
無事入りました。
まとめ
- golang をインストールしました。
go
コマンドを汎用的に使えるようにしました。- GOPATH は
~/.go/
のあたりにしておくとよい - パッケージのインストールは
go get <URL>
- パッケージのアップデートは
go get -u <URL>
- A Tour of Go をやる。