LoginSignup
11
12

More than 5 years have passed since last update.

[golang]GOPATHとコードの公開

Last updated at Posted at 2015-12-11

せっかくなので前回、Goで作成したサンプルコードをGitHubに公開してみようと思います。
利用用途は全くありませんが、自己学習と備忘録のためです。

その前にGOPATHについて軽く触れておきます。
GOPATHとはGoが利用する環境変数で、事前に設定する必要があります。
goコマンドでパッケージなどをインストールすると、このGOPATHの下へ自動でインストールします。
簡潔に言うとGoのワーキングディレクトリ、といった感じでしょうか。

今回は/usr/local/srcの下にgoprojというディレクトリを作成して、そこをGOPATHに設定します。

補足
GOPATHは/usr/local/srcである必要はありません、任意です。

事前設定

早速、以下のコマンドでGOPATHを設定します。

ターミナル
$ cd /usr/local/src/
$ mkdir goproj
$ cd goproj
$ export GOPATH=`pwd`
$ echo $GOPATH

GOPATHに/usr/local/src/goprojが設定されていればokです。

コードの公開

GitHubのリポジトリに合わせてディレクトリを作成します。
GOPATHの下にsrc/github.com/mainディレクトリを作成し、前回記事のファイル(hello.go)を保存します。

/usr/local/src/goproj
 |
 |-- src
      |
      |-- github.com
              |
              |-- main
                    |
                    |-- hello.go

hello.goの動作をローカルで確認して、問題なければGitHubに公開します。
事前に自分のGitHubにリポジトリを用意しときます。

今回、私が用意したリポジトリは以下です。
https://github.com/Dewazakura/gosample.git

あとはmainディレクトリをGit管理してGitHubにpushします。

ターミナル
$ cd $GOPATH/src/github.com/main
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/Dewazakura/gosample.git
$ git push origin master

pushが成功したらコードの公開が完了です。
GitHubのリポジトリを見ると、きちんとhello.goが公開されている事が確認できます。

公開したコードを利用する

試しに今度は公開したコードを取得して使ってみます。
ローカルの作業ディレクトリを削除します。

ターミナル
$ cd $GOPATH
$ rm -rf ./*(バッサリ削除)

削除したらGitHubからコードを取得します。

ターミナル
$ go get github.com/Dewazakura/gosample

getコマンドを実行するとGOPATHの下にコードが保存されます。
そのさいsrc、bin、pkgディレクトリも作成されます。

srcディレクトリには、ソースコードが保存されます。
binディレクトリには、ビルドされたバイナリファイルが保存されます。
binに保存されたビルドファイルはソースコードと同じように実行できます。

以下はどちらも同じ実行結果になります。

ターミナル
$ cd $GOPATH
// 🔻どちらも同じ
$ bin/gosample(ビルドファイルを実行する)
$ go run src/github.com/Dewazakura/gosample/hello.go(ソースコードを実行する)

余談ですが、goコマンドは標準でクロスコンパイルできるので、windowsのexeファイルも簡単に作成できます。

最後に

以下、WEB+DB Press Vol.82より引用

Goのコマンドは、GOPATHとその下にある先の3つのディレクトリ(src、bin、pkg)の命名規則を用いて、Makefileなどの構成ファイルなしで依存関係を解決してビルドできるようになっています。

という事で、GOPATH便利ですね。

以上です。

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12