Gitea ARM7 ビルド (ラズベリー パイ2)
ラズベリーパイの上にGiteaインスタンスで自分のプロジェクト コードをホスティングしています。 だが最後のRaspbianアップデートがgiteaを壊してしまいました。多分カーネルかlibcの変化がありました。 どのバーションを使ってもGiteaバイナリがmainを入る前にセグメンテーション違反で止まります。 この問題を解決ためにラズベリーパイで ソースからGiteaをコンパイルするしかなかった。
コンパイル途中で使われているメモリが1.2Goまで伸びてしまいますからスワップファイルの大きさを上げるのも必要でした。
$ dphys-swapfile swapoff
# /etc/dphys-swapfileのファイルにスワップサイズを変更して
# スワップを改めて作ります
$ dphys-swapfile setup
$ dphys-swapfile swapon
Golangのコンパイラーを手に入れる:
$ docker pull golang
$ docker run -it golang bash
コンテナでビルドして:
% export GOOS=linux GOARCH=arm GOARM=7
% go get -d -u code.gitea.io/gitea
% cd $GOPATH/src/code.gitea.io/gitea
% git checkout v1.12.5
% TAGS="bindata sqlite sqlite_unlock_notify" make build
新しいバイナリを回収する:
$ docker cp [your container name]:/go/src/code.gitea.io/gitea/gitea gitea-1.12.5-linux-arm-7
# My service file references the gitea symlimk, just point to the new file
$ ln -sf gitea-1.12.5-linux-arm-7 gitea
$ systemctl restart gitea