池の上にも

平均以下の理解力で、色々アウトプットしてみるブログ

今更 Go を触ってみた

Docker のランダムな文字列を作るやつが、ふと気になったのでインストールしてみることにしました。Go 言語で書かれているらしいです。

moby/names-generator.go at master · moby/moby · GitHub

Go インストール

Downloads - The Go Programming Language

上の URL から環境にあったバイナリをダウンロードします。

$ wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz
$ sha256sum go1.9.1.linux-amd64.tar.gz


展開してインストール。

$ ls /usr/local/go
ls: cannot access '/usr/local/go': No such file or directory

$ sudo tar -C /usr/local -xzf go1.9.1.linux-amd64.tar.gz


PATH を追加します。

$ sudo vim /etc/profile.d/go.sh
#!/bin/bash
export PATH=$PATH:/usr/local/go/bin

$ source /etc/profile


Go がインストールできました。

$ go version
go version go1.9.1 linux/amd64

names-generator の導入

ソースコードをダウンロードします。

$ wget https://raw.githubusercontent.com/moby/moby/master/pkg/namesgenerator/names-generator.go


内容を少し書き換えます。

$ vim names-generator.go

1. package を namesgenerator から main に変更
< package main
---
> package namesgenerator

2. import に "time" を追加
<    "time"

3. main 関数を追加
< func main() {
<    rand.Seed(time.Now().UnixNano())
<    fmt.Println(GetRandomName(0))
< }


ビルドします。

$ go build names-generator.go


動かしてみます。問題なく動いたら、バイナリを移動していつでも使えるようにしておきます。

$ ./names-generator 
optimistic_liskov
$ sudo mv names-generator /usr/local/bin/

おわりに

names-generator.go のソースコードに以下の記載があります。
退屈なウォズニアックは存在しないので、やり直しだそうです。

  if name == "boring_wozniak" /* Steve Wozniak is not boring */ {
    goto begin
  }