せっかくなので前回、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便利ですね。
以上です。