2016年2月14日日曜日

Goでクロスコンパイルを実行する

Go 1.5からはクロスコンパイルが簡単に実行できるようになっている。

github公開用としてコードを書く場合
$ cd $GOPATH
$ mkdir -p src/github.com/hogeuser/fugarepo
$ cd src/github.com/hogeuser/fugarepo

ローカルマシン専用にコードを書く場合
$ cd $GOPATH
$ mkdir src/foohost.local
$ cd src/foohost.local

hello.go
package main

import "fmt"
import "runtime"

func main() {
        fmt.Printf("hello, %s/%s\n", runtime.GOOS, runtime.GOARCH)
}


OS X用にビルドして実行する場合
$ go build -o hello hello.go 
$ ./hello
hello, darwin/amd64

Windows用にビルドする場合
$ GOOS=windows GOARCH=amd64 go build -o hello.exe hello.go

Raspberry Pi 2用にビルドする場合
$ GOOS=linux GOARCH=arm GOARM=7 go build -o hello hello.go


[参考URL]
Go1.5はクロスコンパイルがより簡単 | SOTA
GoArm
Cross compile with Go 1.5 for Raspberry Pi

2016年2月13日土曜日

Goをインストールする

homebrewを使ってGoをインストールする。
$ brew update && brew install go

環境変数としてGOPATH、GOROOTを設定した上でPATHを通す。
GOPATH配下はbin、pkg、srcのディレクトリで構成されることが想定されている。GOROOTについてはGoツールのパスを指定しておく。
$ mkdir ~/golang
$ echo 'export GOPATH=$HOME/golang' >> ~/.bashrc
$ echo 'export GOROOT=/usr/local/opt/go/libexec' >> ~/.bashrc
$ echo 'export PATH=$GOPATH/bin:$PATH' >> ~/.bashrc
$ echo 'export PATH=$GOROOT/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc

使用可能なコマンドを確認する。
$ go help

インストールされたGoのバージョンを確認する。
$ go version
go version go1.5.3 darwin/amd64

Goの環境情報を確認する。
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/hogeuser/golang"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT=""
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

入力補完用にgocodeをインストールする。
$ go get -u github.com/nsf/gocode


現時点でのhomebrew Formulaを確認する限り、godocとvetはデフォルトでインストールされるようだが、別途インストールする必要がある場合は下記の通り実行する。

godocのインストール
$ go get golang.org/x/tools/cmd/godoc

vetのインストール(先にMercurialをインストールしておく必要がある)
$ brew install mercurial
$ hg version
Mercurial Distributed SCM (version 3.6.1)
(see https://mercurial-scm.org for more information)

Copyright (C) 2005-2015 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ go get golang.org/x/tools/cmd/vet


[参考URL]
How to Write Go Code - The Go Programming Language
Goのコマンド
これからGoを始める人のためのTips集

2016年2月5日金曜日

Pythonバージョン管理ツールを導入する

Pythonバージョン管理ツールであるpyenvを導入する。pyenvプロジェクトはrbenv及びruby-buildからフォークされ、Python用にモディファイされたプロジェクトである。そのため、導入方法はほぼRubyの場合と同様(参考:Rubyバージョン管理ツールを導入する)。

pyenvをインストールしてPATH設定する。
$ brew update
$ brew install pyenv

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ exec $SHELL -l

pyenvのバージョンを確認する。
$ pyenv -v
pyenv 20160202

インストール可能なPythonのバージョンを確認する。
$ pyenv install -l

2.7.10をインストールする。
$ pyenv install 2.7.10
$ pyenv rehash

3.5.0をインストールする。
$ pyenv install 3.5.0
$ pyenv rehash

インストールされているPythonのバージョンを確認する。
$ pyenv versions
* system (set by /Users/hogeuser/.pyenv/version)
  2.7.10
  3.5.0

使用するPythonのバージョンを切り替える。
$ pyenv global 2.7.10
$ pyenv versions
  system
* 2.7.10 (set by /Users/hogeuser/.pyenv/version)
  3.5.0

使用中のPythonのバージョンを確認する。
$ pyenv version
2.7.10 (set by /Users/hogeuser/.pyenv/version)
$ python --version
Python 2.7.10