Go言語

  • プログラミング言語の一つ
  • Google により開発された
  • クロスコンパイル環境を手に入れやすい
  • ソースがきっちり定義されている
  • 使わない変数などがあると、コンパイル時にエラーとなる
  • 個人的な感想
    • 変数などの定義が独特な気がする
    • 難易度: シェルスクリプト < awk = Perl < Python < Go言語 < C
    • デバッグのためにデバッグ用変数やprint文を散りばめたりするやり方が取りづらい (使わない変数があるとコンパイル時にエラーになるため)

パッケージマネージャでインストールする方法

  • とても簡単にインストールする方法
  • クロスコンパイルに必要な u.h がなぜかない
  • 最新版が手に入りにくい
  • インストール
    $ sudo apt-get install golang

gvmでインストールする方法

インストール方法

  • とても簡単にインストールする方法
  • 最新版が手に入りやすい
  1. 必要なパッケージインストール
    $ sudo apt-get install curl git mercurial make binutils bison gcc build-essential
  2. gvm のインストール
    $ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
  3. シェルの設定ファイルの編集(以下を .bashrc や .zshrc などに追記)
    if [ -s ${HOME}/.gvm/scripts/gvm ]; then
    	source ${HOME}/.gvm/scripts/gvm
    fi
  4. go 言語のインストール
    $ gvm install go1.4.2
    $ gvm use go1.4.2
    $ gvm install go1.5
  5. クロスコンパイラ環境の整備
    $ gvm use go1.4.2
    $ gvm cross OS ARCH
    • OS には今後クロスコンパイルするであろうOSを入力する (windows, linux, darwin, freebsd, netbsd, openbsd)
    • ARCH には今後クロスコンパイルするであろうアーキテクチャを入力する (386, amd64, arm)
    • 一度実行しておけば、go1.5 以降の Go 言語に切り替えてもクロスコンパイルができる

gvm コマンド

  • 使用する Go 言語のバージョンの切り替え
    $ gvm use GO
    • GO には go1.4 や go1.5 などのバージョンを入力する
    • 詳しくはインストール可能なバージョン一覧を参照
  • インストール可能なバージョン一覧
    $ gvm listall
  • インストール済みのバージョン一覧
    $ gvm list
  • デフォルトで使うバージョンの指定
    $ gvm use GO --default
    • GO には go1.4 や go1.5 などのバージョンを入力する
    • 詳しくはインストール可能なバージョン一覧を参照

パッケージをダウンロードしてインストールする方法

  • 何から何まで自分でやる方法
  1. http://golang.org/dl からバイナリダウンロード
    • 1.5 以降のバージョンは 1.4 がないと動かない
  2. パッケージ展開
    $ sudo tar -C /usr/local -xzf go1.4.x.linux-amd64.tar.gz
    • go1.4.x.linux-amd64.tar.gz はダウンロードしたファイルに合わせて変更する
  3. インストール
    $ cd /usr/local/go/src
    $ sudo ./all.bash
  4. パスの追加 (.bashrc や .zshrc に追記)
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
  5. 【go1.5以降をインストールする場合】 go1.4 を変更
    $ cd /usr/local
    $ sudo mv /usr/local/go /usr/local/go1.4
  6. 【go1.5以降をインストールする場合】go1.5 のパッケージを展開
    $ sudo tar -C /usr/local -xzf go1.5.x.linux-amd64.tar.gz
    • go1.5.x.linux-amd64.tar.gz はダウンロードしたファイルに合わせて変更する
  7. 【go1.5以降をインストールする場合】 インストール
    $ export GOROOT_BOOTSTRAP=/usr/loca/go1.4
    $ cd /usr/local/go/src
    $ sudo -E ./all.bash
  8. 【go1.5以降をインストールする場合】 パス追加
    export GOROOT_BOOTSTRAP=/usr/loca/go1.4
  9. 【go1.5以降をインストールする場合】 バージョン確認
    $ go version
    • インストールしたバージョンが表示されたら OK
  • コンパイルせずに実行
    $ go run SOURCE.go
  • コンパイル
    $ go build SOURCE.go
    • .go が取れた実行形式のバイナリが生成される
  • クロスコンパイル
    $ GOOS=OS名 GOARCH=アーキテクチャ go build SOURCE.go
    • 使えるOS: windows, linux, darwin, freebsd, netbsd, openbsd
    • 使えるアーキテクチャ: 386 (32ビット), amd64 (64ビット), arm (組み込み)
    • 例: 64ビットWindowsで実行できるバイナリをコンパイル
      $ GOOS=windows GOARCH=amd64 go build SOURCE.go
  • 実行 (SOURCE.go をコンパイルした場合)
    $ ./SOURCE
  • 「Go言語」「golang」でぐぐる