
【第8回】Go言語(Golang)入門~環境見直し編~
2020.08.09
目次
第8回~Go言語(Golang)入門~

(株)ライトコードの笹川(ささがわ)です!
前回は、TwitterAPI を利用し、HTMLテンプレートでエゴサーチの結果を表示しました。
今回は、なんと、Goの環境やパッケージ管理を見直していきます!
それでは、いってみましょう!
前回の記事はこちら
こちらの記事もオススメ!
環境の見直し
1回目の記事を書いた際に、弊社のメンバーから
「どうせだったら brew とか goenv で導入してみればよかったのに」
…というお言葉を頂いたので、折角なので、goenv で go の環境構築をやりなおしてみることにしました。
goenvとは
goenvとは、rbenv をベースとしたGo言語(Golang)のバージョン管理ツールです。
brew経由でインストールでき、バージョンを指定してインストール出来ることから、チーム開発や複数の環境での開発をしたいときに有用です。
goenvを導入してみよう
Go言語(Golnag)のバージョン1.13は、2019/10/2時点で、goenv の master には入っていないようなので、--HEADをつけてインストールします。
1 | brew install --HEAD goenv |
PATHを通す
PATH を通します。
1 2 3 | echo 'export PATH=$HOME/.goenv/bin:$PATH' >> ~/.bash_profile echo 'export GOENV_DISABLE_GOPATH=1' >> ~/.bash_profile echo 'eval $(goenv init -)' >> ~/.bash_profile |
ターミナルで PATH を読み直します。
1 | source ~/.bash_profile |
インストール
Go言語(Golnag)のバージョン1.13をインストールします。
1 | goenv install 1.13.0 |
端末全体で使う Go言語(Golang)のバージョンを1.13に指定します。
1 | goenv global 1.13.0 |
GOPATH 等は、第1回目で設定したものと同じなので割愛します。
これで、goenv の導入は完了です。
なお、インストーラー経由でインストールしたものを、アンインストールしたい場合はこちらのドキュメントを参考にしてください。
第1回目の記事はこちら
パッケージ管理見直し
1回目の記事を書いた際に、こんな「はてなブックマークのコメント」を頂きました。
【第1回】Go言語(Golang)入門~環境構築編~ – 株式会社ライトコード
Go 1.13を使うなら、depではなくて標準のGo Modulesを使ってみては?
なので、今回はパッケージ管理ツールを、dep から Go Modules に変更してみたいと思います。
depを削除する
まずは、Gopkg.toml と Gopkg.lock を削除します。
1 | rm -f Gopkg.* |
次に、vender ディレクトリを削除します。
1 | rm -fr vendor |
dep のアンインストールをします。
1 | brew uninstall dep |
これで、dep の削除は完了しました。
下記のようにコメントを頂きましたので、もしかするとここの手順は不要かもしれません。
dep→Go modulesはgo mod initでGopkg.*を見て移行してくれるからdep削除の前にinitしたほうが楽かもしれない。2019/10/31
Go Modulesを入れてみよう
ターミナルで main.go がある場所まで移動し、Go Modules の初期化を実行します。
1 | go mod init |
main.go のあるディレクトリ内に go.mod というファイルが作成できていたら成功です。
次に、main.go に簡単な処理を記述します。
1 2 3 4 5 6 7 8 9 10 | package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) } |
Go Modules は、dep と異なり、 go build コマンドでパッケージを導入してくれますので、 go build コマンドを実行します。
1 | go build main.go |
main.go のあるディレクトリに main というファイルが出来ていたら成功です。
実行
それでは、main.go を実行してみましょう。
1 2 | $ go run main.go こんにちは世界。 |
成功したようです。
このまま、以前に作成したhello.goの処理を呼び出してみます。
1 2 3 4 5 6 7 | package main import "go_example/hello" func main() { hello.SayHello() } |
main.go に処理を記述したら実行してみます。
1 2 | $ go run main.go hello, world |
無事に呼び出しができました!
環境構築用のシェルで作ってみよう
複数の環境での goenv を利用することで開発環境構築が容易になったので、環境構築用のシェルファイルを作成してみたいと思います。
setup.sh を作成し、まずはいつもの定型文を追加します。
1 | #!/bin/bash |
ディレクトリ作成
次に、作業用のディレクトリを作成します。
1 | mkdir -p development/go/src |
goenvのインストールとPATH設定
ディレクトリ作成後は、先述の通りに goenv のインストールと PATH設定をします。
1 2 3 4 5 6 7 8 9 | brew install --HEAD goenv echo "# golang" >> ~/.bash_profile echo export PATH='$HOME/.goenv/bin:$PATH' >> ~/.bash_profile echo export GOENV_DISABLE_GOPATH=1 >> ~/.bash_profile echo eval "$(goenv init -)" >> ~/.bash_profile source ~/.bash_profile goenv install 1.13.0 goenv global 1.13.0 goenv rehash |
GOPATHを通す
次に、GOPATH を通します。
1 2 3 4 | echo export GOPATH='$HOME/development/go' >> ~/.bash_profile echo export PATH='$PATH:$GOPATH/bin' >> ~/.bash_profile echo export PATH='$PATH:/usr/local/go/bin' >> ~/.bash_profile source ~/.bash_profile |
リポジトリからclone
GOPATH を通したら、リポジトリから clone します。
1 2 | cd $GOPATH/src git clone https://github.com/noriyuki-sasagawa/go_example.git |
実行
clone が終わったら、main.go を実行します。
1 2 | cd $GOPATH/src/go_example/ go run main.go |
まとめたものはこちらの setup.sh になります。
これで、シェルの作成は完了となります。
Go言語(Golang)の実行環境がない端末で下記を実行すると Hello, World と表示されるはずです。
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/noriyuki-sasagawa/go_example/master/setup.sh)" |
第9回につづく!
今回は、環境の見直しで Go言語(Golang)を、パッケージからではなく、goenv 経由でインストールしました。
バージョン管理については、使うコマンドとしては差異はあるものの、明らかに開発効率が悪くなることもないので、今後も Go Modules を利用して行きたいと思います。
なお、今回作成した goファイルは、こちらのリポジトリにて管理しています。
Go言語でのシステム開発依頼・お見積もりはこちらまでお願いします。
また、Go言語を扱えるエンジニアを積極採用中です!詳しくはこちらをご覧ください。
次回の記事はこちら
オススメのGo入門本
こちらの記事もオススメ!
第1回の記事はこちら
ライトコードよりお知らせ






一緒に働いてくれる仲間を募集しております!
ライトコードでは、仲間を募集しております!
当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。
また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!
なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。
ライトコードでは一緒に働いていただける方を募集しております!
採用情報はこちら書いた人はこんな人

- 新潟生まれ新潟育ち本業はモバイルアプリエンジニア。
日々、猫(犬)エンジニアとして活躍中!
IT技術2020.03.24Androidのライブラリを作って公開してみた
IT技術2019.12.18【最終回】Go言語(Golang)入門~Twitterアプリ作成完了編~
IT技術2019.12.12【第14回】Go言語(Golang)入門~Twitterアプリ作成編~
IT技術2019.12.04【第13回】Go言語(Golang)入門~MySQL利用編~