プロジェクト

全般

プロフィール

GitBucket

はじめに

GitHubクローンの1つで、scalaで書かれてjavaで実行します。オープンソースで次のURLで公開されています。
https://github.com/takezoe/gitbucket

開発者のブログより

質問等(バグかな?も)は、まずは次のGitterチャットに寄せてくださいとのこと。

日本語でないとちょっと、という方はこちらに。

なお、GitHubのissuesには英語で登録をお願いしますとのこと(海外ユーザーも多い)。

インストール

CentOS 6/7用RPMのインストール

本ページで作成したCentOS 6/7用GitBucket RPMパッケージのインストール方法です。

新規インストール

# yum localinstall gitbucket-3.8-1.noarch.rpm
Loaded plugins: fastestmirror

Setting up Local Package Process
Examining gitbucket-3.8-1.noarch.rpm: gitbucket-3.8-1.noarch
Marking gitbucket-3.8-1.noarch.rpm to be installed
  :
Installed:
  gitbucket.noarch 0:3.8-1

Complete!
#

バージョンアップ

# yum localupdate gitbucket-3.8-1.el6.noarch.rpm
Loaded plugins: fastestmirror
Setting up Local Package Process
xamining gitbucket-3.8-1.noarch.rpm: gitbucket-3.8-1.noarch
Marking gitbucket-3.8-1.noarch.rpm as an update to gitbucket-3.7-1.noarch
  :
Updated:
  gitbucket.noarch 0:3.8-1

Complete!
#
GitBucket 3.13以前からGitBucket 4.0以降へアップデートするには

GitBucket 3.13(を含みそれ)以前からGitBucket 4.0(を含みそれ)以降へアップデートする際は、いったんGitBucket 3.14にアップデートし、それからGitBucket 4.0以降にアップデートしてください。

以下は、GitBucket 3.13から4.3にアップデートしようとしてエラーになった例です。

~$ sudo yum localupdate ./gitbucket-4.3-1.noarch.rpm
  :
トランザクションを実行しています
gitbucket 4.0 can only be upgrade from 3.14
エラー: %pre(gitbucket-4.3-1.noarch) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package gitbucket-4.3-1.noarch
エラー:   install: スクリプト %pre の実行に失敗しました (2)。gitbucket-4.3-1 を スキップします。
  Verifying               : gitbucket-4.3-1.noarch                          1/2
gitbucket-3.13-1.noarch was supposed to be removed but is not!
  Verifying               : gitbucket-3.13-1.noarch                         2/2

失敗:
  gitbucket.noarch 0:3.13-1               gitbucket.noarch 0:4.3-1
GitBucket 3.10で内蔵H2DBのバージョンを1.4.180から1.4.190に更新したことによるエラー

GitBucketを3.9から3.10.1にアップデートしてみたところ、Webブラウザからアクセスした際にH2DBのエラーが発生しました。

org.h2.jdbc.JdbcSQLException: テーブル "ACTIVITY" が見つかりません
Table "ACTIVITY" not found; SQL statement:
  :

この問題については、対策が2つ用意されています。

  1. マイグレートツールを使ってデータベース移行
  2. H2DB 1.4.180を内蔵したGitBucket 3.10.1

このH2DBの更新の理由は次のとおりですので、できる限り新しい版を使いたいところです。

データストアの信頼性向上のため、GitBucketが内部で使用しているH2データベースを最新版である1.4.190にバージョンアップしました。

そこで、マイグレートを実施してみることにします。

work$ git clone https://github.com/gitbucket/h2-migration.git
work$ cd h2-migration/
h2-migration$ vi migration.sh

  #!/bin/sh

- export GITBUCKET_HOME=~/.gitbucket
+ export GITBUCKET_HOME=/var/lib/gitbucket
  export H2_USER=sa
  export H2_PASSWORD=sa

ですが実行するとエラーに

h2-migration$ sudo ./migration.sh
mv: cannot stat `/var/lib/gitbucket/data.h2.db': そのようなファイルやディレクト リはありません
mv: cannot stat `/var/lib/gitbucket/data.trace.db': そのようなファイルやディレクトリはありません

うーん、これ以上の調査はとりやめ、2番目の方法を実施します。

設定ファイル

/etc/sysconfig/gitbucket を編集します。

  • ポート番号の設定(デフォルトは8080)
    # Server port
    GITBUCKET_PORT=8080
    
  • プレフィックス(URLのパス名)の設定(デフォルトは空)
    # URL Prefix
    GITBUCKET_PREFIX=gitbucket
    
  • ホスト名(URLのホスト名)の設定(デフォルトは動作させるマシンのFQDN)
    # Host name
    GITBUCKET_HOST=repo.example.com
    
  • JavaVMの起動時コマンドラインオプション
    # Other Java option
    GITBUCKET_JVM_OPTS="-Dmail.smtp.starttls.enable=true" 
    

CentOS 6/7用RPMの作成

GitBucketのリリースバイナリ(gitbucket.war)とcontribのRPMビルド用ファイルを集めてRPMパッケージを作成しました。
作業の過程はチケット #14 に記述しています。gitbucketをデーモンで単独実行するものでtomcat等のアプリケーションサーバーは使用しません。

warファイルをJavaVMで実行するプログラムなので、CentOS 6/7で動作します。起動スクリプト(サービス)は、CentOS 7の場合レガシー(systemdではなく)として動きます。

問題点

  • gitbucket 4.1~4.5のRPMパッケージは、gitbucket 4.xからのアップデートインストールが失敗します。
    RPMパッケージのアップデート時に、バージョン3系からアップデートする場合のバージョン制約のチェックが4系からのアップデートにも働いてしまったバグです。
    gitbucket 4.6のRPMパッケージで修正しました。

GitBucket 3.13以前から4.0以降へアップデートする際の注意点

GitBucket 3.13以前から4.0以降へアップデートする場合、いったんGitBucket 3.14にアップデートし、それから4.0以降へアップデートするようにしてください。

GitBucketの3.9(3.10 with h2.1.4.180)から3.10以降へアップデートする際の注意点

GitBucket 3.10以降は、内蔵するH2 databaseがバージョン1.4.180から1.4.190に変更になっています。
GitBucketの3.9(または3.10 with h2 1.4.180)で運用している環境に、3.10以降をアップデートするとデータベースが壊れます。

Ver. 4.9

H2 database migrationツール

過去のバージョン

Ver. 4.8
Ver. 4.7.1
Ver. 4.6
Ver. 4.5
Ver. 4.4
Ver. 4.3
Ver. 4.2.1
Ver. 4.1
Ver. 3.13
Ver. 3.12
Ver. 3.10.1 with H2 1.4.180
Ver. 3.9
Ver. 3.8
Ver. 3.7
Ver. 3.6
Ver. 3.5
Ver. 3.4
Ver. 3.3

CentOS 7でも動作するのを確認し、パッケージ名からel6を削除しました。

Ver. 3.2
Ver. 3.1
  • gitbucket-3.1-1.el6.noarch.rpm
Ver. 3.0
  • gitbucket-3.0-1.el6.noarch.rpm
Ver. 2.8

後述のVer. 2.7とほぼ同一の手順です。

  • gitbucket-2.8-1.el6.noarch.rpm

Ver. 2.7 でRPMパッケージを作る流れ

gitbucketリポジトリのReleasesページ から、次の2つをダウンロードします。

  • gitbucket.war
  • gitbucket-2.7.tar.gz

RPMビルド環境に、上述ダウンロードファイルから次のファイルを展開します。

  • gitbucket.war -> ~/rpm/SOURCES/
  • Souce codeの中のcontrib/gitbucket.conf -> ~/rpm/SOURCES/
  • Souce codeの中のcontrib/linux/redhat/gitbucket.init -> ~/rpm/SOURCES/
  • Souce codeの中のcontrib/linux/redhat/gitbucket.spec -> ~/rpm/SPECS/

~/rpm/SPECS/gitbucket.specを修正します(バージョン番号の修正)。

@@ -1,6 +1,6 @@
 Name:          gitbucket
 Summary:       GitHub clone written with Scala.
-Version:       2.6
+Version:       2.7
 Release:       1%{?dist}
 License:       Apache
 URL:           https://github.com/takezoe/gitbucket
@@ -60,6 +60,9 @@

~/rpm/SOURCES/gitbucket.confを修正します(バージョン番号の修正)。

 # GitBucket version to fetch when installing
-GITBUCKET_VERSION=2.1
+GITBUCKET_VERSION=2.7

RPMビルドを実行します。

~$ rpmbuild -ba rpm/SPECS/gitbucket.spec
  :
~$

成功すると、~/rpm/RPMS/noarch/gitbucket-2.7-1.el6.noarch.rpm が生成されます。

Ver. 2.6以前

Ver. 2.6

2014-11-24作成のVer.2.6のRPMパッケージです。起動スクリプトをgitbucketユーザーで実行する設定に変更してビルドしました。

公開されている設定でビルドしたRPMパッケージ(Ver.2.1)

root権限で実行されるGitBucketのRPM

そのSPECファイル

gitbucketユーザーで実行する設定に変更してビルドしたRPMパッケージ(Ver.2.4.1)

そのSPECファイル

serviceで制御するスクリプト

設定ファイル

設定

メモリ・CPU使用率の調整

Linuxマシン(CentOS 6 64bit版、OpenJDK 1.8.0.51)でGitBucketのwarファイルを実行したときのgitbucketプロセス(java)のメモリとCPUはtopコマンドで次のようになっています。

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6174 gitbucke  20   0 1444m 109m  13m S  1.0 11.0 141:31.36 java

仮想メモリサイズ(予約ページ)は約1.4GB、物理メモリ使用サイズは100MB、CPU使用率が1%弱ほどとなっています。

本記事へのコメント

本記事についてコメントがございましたら、次のリンクをクリックして記載をお願いいたします。

  • 注)本記事と関連のないと管理者が判断したコメントは削除させていただくことがあります。

コメント一覧

  • 匿名ユーザー が4ヶ月前に追加

    4.1-1から4.5-1へのアップデートをしようとしたところ以下のように失敗します。
    1. yum update gitbucket-4.5-1.noarch.rpm
      読み込んだプラグイン:fastestmirror, refresh-packagekit, security
      更新処理の設定をしています
      gitbucket-4.5-1.noarch.rpm を調べています: gitbucket-4.5-1.noarch
      次のリポジトリーへの更新として gitbucket-4.5-1.noarch.rpm を設定します: gitbucket-4.1-1.noarch
      Loading mirror speeds from cached hostfile * base: centos.usonyx.net * epel: epel.mirror.net.in * extras: ftp.iij.ad.jp * updates: centos.usonyx.net
      依存性の解決をしています
      --> トランザクションの確認を実行しています。
      ---> Package gitbucket.noarch 0:4.1-1 will be 更新
      ---> Package gitbucket.noarch 0:4.5-1 will be an update
      --> 依存性解決を終了しました。

    依存性を解決しました

    ========================================================================================================================================================================================================
    パッケージ アーキテクチャ バージョン リポジトリー 容量 ========================================================================================================================================================================================================
    更新:
    gitbucket noarch 4.5-1 /gitbucket-4.5-1.noarch 45 M

    トランザクションの要約 ========================================================================================================================================================================================================
    アップグレード 1 パッケージ

    合計容量: 45 M
    これでいいですか? [y/N]y
    パッケージをダウンロードしています:
    rpm_check_debug を実行しています
    トランザクションのテストを実行しています
    トランザクションのテストを成功しました
    トランザクションを実行しています
    gitbucket 4.0 can only be upgrade from 3.14
    エラー: %pre(gitbucket-4.5-1.noarch) scriptlet failed, exit status 1
    Error in PREIN scriptlet in rpm package gitbucket-4.5-1.noarch
    エラー: install: スクリプト %pre の実行に失敗しました (2)。gitbucket-4.5-1 をスキップします。
    gitbucket-4.1-1.noarch was supposed to be removed but is not!
    Verifying : gitbucket-4.1-1.noarch 1/2
    Verifying : gitbucket-4.5-1.noarch 2/2

    失敗:
    gitbucket.noarch 0:4.1-1 gitbucket.noarch 0:4.5-1

    完了しました!

    • 高橋 徹 が3ヶ月前に追加

      4.1~4.5のRPMに問題がありました。4.6で修正しました。コメントありがとうございます。

      • 匿名ユーザー が2ヶ月前に追加

        Greetings from Los angeles! I'm bored to death at work so I decided to browse your website on my iphone during lunch break. I really like the knowledge you provide here and can't wait to take a look when I get home. I'm surprised at how fast your blog loaded on my mobile .. I'm not even using WIFI, just 3G .. Anyhow, great blog!
        nike mercurial vapor white http://abri-de-jardin-nantes.com/images.asp?key=nike-mercurial-vapor-white

        • 匿名ユーザー が2ヶ月前に追加

          GitBucket - ソフトウェアエンジニアリング - Torutk
          <a href="http://www.g260k5z1n232nbv3zh7ifd18mo50bz59s.org/">agrmpsojvs</a>
          [url=http://www.g260k5z1n232nbv3zh7ifd18mo50bz59s.org/]ugrmpsojvs[/url]
          grmpsojvs http://www.g260k5z1n232nbv3zh7ifd18mo50bz59s.org/

  • 匿名ユーザー が約2ヶ月前に追加

    • 匿名ユーザー が約22時間前に追加

      I simply had to appreciate you all over again. I do not know the things that I might have used in the absence of these strategies shared by you over that area. It had been a very difficult case in my circumstances, nevertheless discovering a well-written form you managed that forced me to weep over fulfillment. Now i'm happier for this support and even wish you comprehend what a great job you are always doing teaching the mediocre ones thru your blog. Most likely you have never encountered any of us.

      • 匿名ユーザー が約17時間前に追加

        Thank you a lot for giving everyone remarkably pleasant opportunity to discover important secrets from this website. It really is very amazing and also jam-packed with amusement for me personally and my office friends to visit your blog at minimum 3 times in one week to see the fresh issues you will have. Of course, I'm just usually motivated with all the tremendous opinions served by you. Selected two areas in this post are unquestionably the most suitable I have had.

        • 匿名ユーザー が約13時間前に追加

          I have to express thanks to this writer just for bailing me out of this particular dilemma. Right after looking throughout the the web and getting basics which were not pleasant, I figured my entire life was well over. Existing without the presence of answers to the difficulties you've resolved as a result of your report is a serious case, as well as ones that might have adversely damaged my career if I had not discovered your web blog. Your skills and kindness in dealing with the whole thing was valuable. I'm not sure what I would've done if I hadn't encountered such a step like this. It's possible to at this time look forward to my future. Thanks so much for the reliable and effective help. I won't be reluctant to propose your web page to anyone who should have direction on this subject matter.

gitbucket-2.1-1.el6.noarch.rpm - gitbucket 2.1のRPM(root権限で実行) (51 MB) 高橋 徹, 2014/07/21 05:38

gitbucket.spec.2.1-1 - gitbucket 2.1のRPM(root権限で実行)を生成するSPECファイル (1.37 KB) 高橋 徹, 2014/07/21 05:42

gitbucket-2.1-2.el6.noarch.rpm - gitbucket 2.1のRPM(gitbucket権限で実行) (51 MB) 高橋 徹, 2014/07/21 05:45

gitbucket.init.2.1-2 - gitbucket 2.1のRPM(gitbucket権限で実行)のサービス起動スクリプト (1.98 KB) 高橋 徹, 2014/07/21 05:46

gitbucket.spec.2.1-2 - gitbucket 2.1のRPM(gitbucket権限で実行)を生成するSPECファイル (1.98 KB) 高橋 徹, 2014/07/21 05:46

gitbucket.conf.2.4.1-1 (1.33 KB) 高橋 徹, 2014/10/26 16:11

gitbucket.init.2.4.1-1 - gitbucket 2.4.1のRPM(gitbucket権限で実行)のサービス起動スクリプト (2.32 KB) 高橋 徹, 2014/10/26 16:11

gitbucket.spec.2.4.1-1 - gitbucket 2.4.1のRPM(gitbucket権限で実行)を生成するSPECファイル (2.06 KB) 高橋 徹, 2014/10/26 16:11

gitbucket-2.4.1-1.el6.noarch.rpm - gitbucket 2.4.1のソースRPM(gitbucket権限で実行) (48.2 MB) 高橋 徹, 2014/10/26 16:13

gitbucket-2.4.1-1.el6.src.rpm - gitbucket 2.4.1のRPM(gitbucket権限で実行) (48.2 MB) 高橋 徹, 2014/10/26 16:13

gitbucket-2.5-1.el6.src.rpm - gitbucket 2.5のソースRPM(gitbucket権限で実行) (48.2 MB) 高橋 徹, 2014/11/23 14:43

gitbucket-2.5-1.el6.noarch.rpm - gitbucket 2.5のRPM(gitbucket権限で実行) (48.2 MB) 高橋 徹, 2014/11/23 14:43

gitbucket-2.6-1.el6.src.rpm - gitbucket 2.6のソースRPM(gitbucket権限で実行) (48.2 MB) 高橋 徹, 2014/11/24 12:51

gitbucket-2.6-1.el6.noarch.rpm - gitbucket 2.6のRPM(gitbucket権限で実行) (48.2 MB) 高橋 徹, 2014/11/24 12:51

gitbucket-2.7-1.el6.noarch.rpm (48.3 MB) 高橋 徹, 2015/01/25 10:04

gitbucket-2.7-1.el6.src.rpm (48.4 MB) 高橋 徹, 2015/01/25 10:04

クリップボードから画像を追加 (サイズの上限: 1 GB)