LoginSignup
11
13

More than 5 years have passed since last update.

FreeBSD に GitBucket をインストール

Last updated at Posted at 2015-09-11

FreeBSD に GitBucket をインストール

無線 LAN AP を構築したら,転がってた USB 無線 LAN のアダプターを使ったせいか設定が悪かったのか,半日ぐらいすると発熱でハングアップしていたので,こましなアダプターが見つかるまで保留することにする.

気を取り直して,ファイルサーバーを構築しようと思ったのだが,Samba も 4.3.0 と 4.2.4 リリース直前だったのでリリース後入れることにする.最近は,ソースからインストールが億劫な歳に差し掛かってきたので,Ports がでるまで待つことにする.(9/8 にリリースされました.)

そこで,GitHub のクローンを構築をしようと思い,GitBucket をインストールすることにした.Java ベースは個人的に重いイメージがあるので,GitLab の方が好みではあるけど,アップデートの手間を考えて GitBucket を選択する.

Tomcat 8

この辺は,サクッと Package でインストールする.
(root で作業)

# pkg install tomcat8
# rehash

インストールが終われば,service tomcat8 onestart で Tomcat を起動する.
http://ip-address:8080 で動作しているか確認する.(pf でポート 8080 を止めている場合,アクセスできないので 8080 を許可する)

service tomcat8 onestop で Tomcat を停止する.

起動時にサービスが起動してほしいので,/etc/rc.confに下記内容を追加する.

rc.conf
tomcat8_enable="YES"

GitBucket

ここから,「gitbucket.war」をダウンロードする.

# cd /usr/local/apache-tomcat-8.0/webapps
# curl -O https://github.com/takezoe/gitbucket/releases/download/3.6/gitbucket.war

Proxy 環境では,curl -x http://user:password@proxy:port -O url としてダウンロードする.

FreeBSD の tomcat のユーザは,www で,ホームディレクトリが /nonexistent で存在しないので,GitBucket のデータを保存するディレクトリを指定する必要がある.(参考)Qiita

/usr/local/apache-tomcat-8.0/bin/setenv.sh を作成して,GITBUCKET_HOME を指定する.

# mkdir /home/gitbucket
# chown www:www /home/gitbucket
# vi /usr/local/apache-tomcat-8.0/bin/setenv.sh
# chmod +x /usr/local/apache-tomcat-8.0/bin/setenv.sh
setenv.sh
#!/bin/sh

export GITBUCKET_HOME=/home/gitbucket

Tomcat を起動すると,webapp に置いた gitbucket.war が配備されるで,Tomcat を起動して動作を確認する.

service tomcat8 start

データを初期化したければ,/home/gitbucket を削除すればよい.

SSH で接続するのに System SettingsSSH access を有効にするときに,SSH Port を指定するが,GitBucket が独自に sshd サーバを起動するので,sshd サーバのポートと別のポートを指定する.(pf でポートを制限している場合は,このポートもアクセス許可する)

トラブル

ある環境において ssh からの git clone がうまくいかない.
Unable to negotiate with xx.xx.xx.xx: no matching host key type found.Their offer: ssh-dss fatal: のようなメッセージが出て,ssh で接続出来ないので,調べてみるとOpenSSH の 7.0 から DSA(ssh-dss) の脆弱性により無効にされたことが原因のようです.

将来的には GitBucket もRSAに対応してくれると思うのですが,一時的な対応としてクライアント側で対応します.

~/.ssh/config で特定ホストに対して,ssh-dss の認証を有効にする.

Host GitBucketのホスト名(or IP)
    HostKeyAlgorithms ssh-dss

後は,ApacheNginx と連携させてSSLの対応もしたいのだけど,どちらのサーバを利用するか決めていないので決まるまで持ち越しです.

アップデート

(2016/03/04)久しぶりにアップデートしたらトラブったのでメモを更新します.
Gitbucket 3.12 が出ていたので,gitbuket.war を置き換えて更新してみたら,404 が表示されました><;
Gitbuketのリリース情報を確認すると,3.11 から Java 8 が要求されてましたので、さっそく更新します.

# service tomcat8 stop
# pkg set -o java/openjdk7:java/openjdk8
# pkg delete openjdk
# pkg install -Rf www/tomcat8
# service tomcat8 start

でアクセスすることができたが,上記トラブルで書いた RSA の対応がされたようで,~/.ssh/config の設定を削除します.一応,~/.ssh/known_hosts の該当するサーバの行も削除しました.

11
13
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
13