Caddy の公式バイナリは、EULAへの同意が必要
Caddy v0.10.9 から https://caddyserver.com/ でダウンロードできるバイナリには、EULAへの同意が必要になりました。特に注意すべき点としては、以下のような条件があることです。
- 商用不可であること
- “Caddy-Sponsers”ヘッダがHTTPリクエストに付与されること(また、いかなる方法でもそれを外さないこと)
そこで、Apache 2.0 Licence である Caddy のソースコードから自分でビルドをしてみたいと思います。
Goの環境を整える
Goのインストール
Golang の公式ページより最新のGoをダウンロードします。
wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
mkdir $HOME/go
/etc/profile.d/goenv.sh
に以下の内容をファイルを作成します。
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
環境変数を読み込みます。
source /etc/profile.d/goenv.sh
インストールされたか確認する
go version
とコマンドを入力して、
go version go1.9 linux/amd64
のように表示されれば、インストールされています。
Caddy をビルドする
以下のように入力して、GitHubからCaddyのソースコードを取得します。 (同時にコンパイルも行われますが、それは使いません。) また、最新のリリースタグにチェックアウトします。(執筆時、v0.10.9)
go get -v github.com/caddyserver/builds
go get -v github.com/mholt/caddy/caddy
cd ~/go/src/github.com/mholt/caddy/
git checkout v0.10.9
以下のコマンドを実行して、コンパイルします。
cd caddy/
go run build.go
終了すると、カレントディレクトリにビルドされた caddy
というファイルが確認できます。 これが、コンパイルされたバイナリになります。このバイナリを利用する場合、 EULA を許諾する必要がありません。(Apache 2.0 Licence には従う必要があります。)
そのほか
クロスコンパイル
上記の方法では、ビルド環境で動くバイナリが生成されます。 クロスコンパイルを行いたい場合、build.go 実行時に以下のように引数をつけます。
- Windows x86
go run build.go -goos=windows -goarch=386
- Windows x64
go run build.go -goos=windows -goarch=amd64
- Linux x86
go run build.go -goos=linux -goarch=386
- Linux x64
go run build.go -goos=linux -goarch=amd64
- FreeBSD x86
go run build.go -goos=freebsd -goarch=386
- FreeBSD x64
go run build.go -goos=freebsd -goarch=amd64
コードに編集を加える
checkout を行った後の時点で変更を加えます。 gitで管理されているので、以下のようなこともできます。
git revert ad973f1 -m 1