2018年1月22日月曜日

gogsをソースからインストールするとデータベースにSQLiteを選択できない?

gogsをソースからインストールするとデータベースにSQLiteを選択できない?

golang製のgithubクローンのgitサーバ【gogs】を、
ソースからインストールしたのですが、
タイトルでハマりました。

以下実際にやったインストール手順。

go get -u github.com/gogits/gogs
cd $GOPATH/go/src/github.com/gogits/gogs
go build

http://gogs.local:3000/

何故かSQLite3がドロップダウンリストに表示されません。

調べてみたところすぐに原因は判明しました。

From source - Gogs

めっちゃ普通に公式に書いてありました。

以下、抜粋。

A couple of things do not come with Gogs automatically, you need to compile Gogs with corresponding build tags.
Available build tags are:

  • sqlite3: SQLite3 database support
  • pam: PAM authentication support
  • cert: Generate self-signed certificates support
  • miniwinsvc: Builtin windows service support (or you can use NSSM to create a service)

For example, you want to support all of them, first delete directory
$GOPATH/pkg/${GOOS}_${GOARCH}/github.com/gogits/gogs and then do:

$ go get -u -tags "sqlite pam cert" github.com/gogits/gogs
$ cd $GOPATH/src/github.com/gogits/gogs
$ go build -tags "sqlite pam cert"

If you get error: fatal error: security/pam_appl.h: No such file or directory, then install missing package via sudo apt-get install libpam0g-dev.

要は上の通り「-tagsオプションをつけてビルドしてくださいね」ということでした。

実際にやってみると、

無事データベースにSQLite3を選択できるようになりました。