3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS5.10でGitBucket2.4.1のrpmを作成しインストールする方法

Last updated at Posted at 2014-10-10

概説

ここでは、CentOS5.10の環境で、GitBucket2.4.1のrpmファイルを作成、インストールし、ログイン画面が表示されるまでを示します。

前提

  • 作業はrootユーザーで行うこととします。
  • 「rpm-build.x86_64」などビルドに必要そうなコマンドは一通りインストール済みであることとします。
  • GitBucketの実行にjavaコマンドが必要になるため、事前に「java-1.7.0-openjdk」等をインストールし、javaコマンドが実行可能な状態にしておきます。
コマンド
# yum groupinstall "Development Tools"
# yum install rpm-build.x86_64
# yum install java-1.7.0-openjdk.x86_64

事前準備

まず、ビルドに必要な関連ファイルを所定のディレクトリにコピーします。
GitBucketのバージョン番号については、最新のモノに適宜読み替えてください。

コマンド
# cd ~
# git clone https://github.com/takezoe/gitbucket.git
# cp gitbucket/contrib/linux/redhat/gitbucket.spec /usr/src/redhat/SPECS/
# cp gitbucket/contrib/gitbucket.conf /usr/src/redhat/SOURCES/
# cp gitbucket/contrib/gitbucket.init /usr/src/redhat/SOURCES/
# wget https://github.com/takezoe/gitbucket/releases/download/2.4.1/gitbucket.war -O /usr/src/redhat/SOURCES/gitbucket.war
# wget https://github.com/takezoe/gitbucket/archive/2.4.1.tar.gz -O /usr/src/redhat/SOURCES/gitbucket-2.4.1.tar.gz
# rm -fr gitbucket

specファイルの修正

specファイル内のバージョンの記述を最新版のモノに書き換える。

コマンド
事前にバックアップを取っておく
# cp /usr/src/redhat/SPECS/gitbucket.spec /usr/src/redhat/SPECS/gitbucket.spec.orig

修正箇所確認
# diff /usr/src/redhat/SPECS/gitbucket.spec /usr/src/redhat/SPECS/gitbucket.spec.orig
3c3
< Version:      2.4
---
> Version:      1.7

rpmファイルの作成

下準備が揃ったので、rpmbuildコマンドでrpmファイルを作成します。

コマンド
# rpmbuild -ba /usr/src/redhat/SPECS/gitbucket.spec
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.57692
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ '[' /var/tmp/gitbucket-2.4-1-root '!=' / ']'
+ /bin/rm -rf /var/tmp/gitbucket-2.4-1-root
+ /bin/mkdir -p /var/tmp/gitbucket-2.4-1-root/etc/init.d /var/tmp/gitbucket-2.4-1-root/etc/sysconfig '/var/tmp/gitbucket-2.4-1-root%{_datarootdir}/gitbucket/lib' /var/tmp/gitbucket-2.4-1-root/usr/com/gitbucket /var/tmp/gitbucket-2.4-1-root/var/log/gitbucket
+ /usr/bin/install -m 0644 /usr/src/redhat/SOURCES/gitbucket.war '/var/tmp/gitbucket-2.4-1-root%{_datarootdir}/gitbucket/lib'
+ /usr/bin/install -m 0755 /usr/src/redhat/SOURCES/gitbucket.init /var/tmp/gitbucket-2.4-1-root/etc/init.d/gitbucket
+ /usr/bin/install -m 0644 /usr/src/redhat/SOURCES/gitbucket.conf /var/tmp/gitbucket-2.4-1-root/etc/sysconfig/gitbucket
+ touch /var/tmp/gitbucket-2.4-1-root/var/log/gitbucket/run.log
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-python-bytecompile
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: gitbucket-2.4-1
error: File must begin with "/": %{_datarootdir}/gitbucket/lib/gitbucket.war
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/gitbucket-2.4-1-root


RPM build errors:
    File must begin with "/": %{_datarootdir}/gitbucket/lib/gitbucket.war

残念ながら「File must begin with "/": %{_datarootdir}/gitbucket/lib/gitbucket.war」というエラーが発生しました。
どうやら、「%{_datarootdir}」の部分が正しい文字列に置き換わっていないため、パスが不正となっているようです。
では、「%{_datarootdir}」を何に書き換えればよいかということで、手がかりになりそうな「gitbucket.conf」を開きます。

コマンド
# vim /usr/src/redhat/SOURCES/gitbucket.conf

・
・
省略
・
・
# Directory where GitBucket is installed
# Configuration is stored here:
GITBUCKET_DIR=/usr/share/gitbucket <=== それっぽい
GITBUCKET_WAR_DIR=$GITBUCKET_DIR/lib

「GITBUCKET_DIR」として定義されている「/usr/share/gitbucket」がすごくそれっぽいので、これに置き換えます。

コマンド
# vim /usr/src/redhat/SPECS/gitbucket.spec

実行
:%s/%{_datarootdir}/\/usr\/share/g

修正箇所確認
# diff /usr/src/redhat/SPECS/gitbucket.spec /usr/src/redhat/SPECS/gitbucket.spec.orig
3c3
< Version:      2.4
---
> Version:      1.7
23,24c23,24
< %{__mkdir_p} %{buildroot}{%{_sysconfdir}/{init.d,sysconfig},/usr/share/%{name}/lib,%{_sharedstatedir}/%{name},%{_localstatedir}/log/%{name}}
< %{__install} -m 0644 %{SOURCE0} %{buildroot}/usr/share/%{name}/lib
---
> %{__mkdir_p} %{buildroot}{%{_sysconfdir}/{init.d,sysconfig},%{_datarootdir}/%{name}/lib,%{_sharedstatedir}/%{name},%{_localstatedir}/log/%{name}}
> %{__install} -m 0644 %{SOURCE0} %{buildroot}%{_datarootdir}/%{name}/lib
36c36
< /usr/share/%{name}/lib/%{name}.war
---
> %{_datarootdir}/%{name}/lib/%{name}.war

rpmbuildコマンドでビルドの再実行を行います。

コマンド
# rpmbuild -ba /usr/src/redhat/SPECS/gitbucket.spec
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.4672
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ '[' /var/tmp/gitbucket-2.4-1-root '!=' / ']'
+ /bin/rm -rf /var/tmp/gitbucket-2.4-1-root
+ /bin/mkdir -p /var/tmp/gitbucket-2.4-1-root/etc/init.d /var/tmp/gitbucket-2.4-1-root/etc/sysconfig /var/tmp/gitbucket-2.4-1-root/usr/share/gitbucket/lib /var/tmp/gitbucket-2.4-1-root/usr/com/gitbucket /var/tmp/gitbucket-2.4-1-root/var/log/gitbucket
+ /usr/bin/install -m 0644 /usr/src/redhat/SOURCES/gitbucket.war /var/tmp/gitbucket-2.4-1-root/usr/share/gitbucket/lib
+ /usr/bin/install -m 0755 /usr/src/redhat/SOURCES/gitbucket.init /var/tmp/gitbucket-2.4-1-root/etc/init.d/gitbucket
+ /usr/bin/install -m 0644 /usr/src/redhat/SOURCES/gitbucket.conf /var/tmp/gitbucket-2.4-1-root/etc/sysconfig/gitbucket
+ touch /var/tmp/gitbucket-2.4-1-root/var/log/gitbucket/run.log
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-python-bytecompile
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: gitbucket-2.4-1
Provides: config(gitbucket) = 2.4-1
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: /bin/bash config(gitbucket) = 2.4-1 java >= 1.7
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/gitbucket-2.4-1-root
Wrote: /usr/src/redhat/SRPMS/gitbucket-2.4-1.src.rpm
Wrote: /usr/src/redhat/RPMS/noarch/gitbucket-2.4-1.noarch.rpm <=== rpmファイルが作成されました
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.7258
+ umask 022
+ cd /usr/src/redhat/BUILD
+ '[' /var/tmp/gitbucket-2.4-1-root '!=' / ']'
+ /bin/rm -rf /var/tmp/gitbucket-2.4-1-root
+ exit 0

今度は正しく処理が終了し、rpmファイルが作成されました。

コマンド
# ls -l /usr/src/redhat/RPMS/noarch/gitbucket-2.4-1.noarch.rpm
-rw-r--r-- 1 root root 50521338 Oct 10 18:12 /usr/src/redhat/RPMS/noarch/gitbucket-2.4-1.noarch.rpm
# ls -l /usr/src/redhat/SRPMS/gitbucket-2.4-1.src.rpm
-rw-r--r-- 1 root root 50521018 Oct 10 18:12 /usr/src/redhat/SRPMS/gitbucket-2.4-1.src.rpm

作成したGitBucket2.4.1のrpmをインストールする

コマンド
# rpm -Uvh /usr/src/redhat/RPMS/noarch/gitbucket-2.4-1.noarch.rpm
error: Failed dependencies:
        java >= 1.7 is needed by gitbucket-2.4-1.noarch

javaのバージョンが古いと怒られ、インストールに失敗しましたので、javaのバージョンを確認します。

コマンド
# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el5_10-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

確かに、バージョン1.7以上のjavaがインストールされているようなので、「--nodeps」で無視して入れちゃいます。

コマンド
# rpm -Uvh --nodeps /usr/src/redhat/RPMS/noarch/gitbucket-2.4-1.noarch.rpm
Preparing...                ########################################### [100%]
   1:gitbucket              ########################################### [100%]

「%{_datarootdir}」を「/usr/share」に書き換えた部分が気になるので、「GITBUCKET_WAR_DIR」として定義されていた、「/usr/share/gitbucket/lib」配下にwarファイルが作成されているか確認します。

コマンド
# ls -l /usr/share/gitbucket/lib/gitbucket.war
-rw-r--r-- 1 root root 51074315 Oct 10 18:12 /usr/share/gitbucket/lib/gitbucket.war

起動スクリプトの「/etc/rc.d/init.d/gitbucket」がそのままではCentOS5で動作しないため、一部書き換えます。

コマンド
事前にバックアップを取っておく
# cp /etc/rc.d/init.d/gitbucket /etc/rc.d/init.d/gitbucket.orig

修正箇所確認
# diff /etc/rc.d/init.d/gitbucket /etc/rc.d/init.d/gitbucket.orig
13c13
< #set -e
---
> set -e
16c16
< #[ -f /etc/rc.common ] && source /etc/rc.common # Mac OS/X
---
> [ -f /etc/rc.common ] && source /etc/rc.common # Mac OS/X
24c24
< #[ -f gitbucket.conf ] && source gitbucket.conf  # For all systems
---
> [ -f gitbucket.conf ] && source gitbucket.conf  # For all systems
34c34
< #if [ -z "$(which success)" ]; then
---
> if [ -z "$(which success)" ]; then
38,39c38,39
< #fi
< #if [ -z "$(which failure)" ]; then
---
> fi
> if [ -z "$(which failure)" ]; then
43c43
< #fi
---
> fi

GitBucketのサービスを起動します。

コマンド
# service gitbucket start
Starting GitBucket server:  Success

http://path_to_domain:8080 にアクセスすると、ログイン画面が表示されます。
初期状態では、「Username:root / Password:root」でログイン可能です。

gitbucket_login.PNG

参考URL

GitBucket-CentOS
GitBucket 2.1のRPMを作成する
GitLabとGitBucketとお試しインストール

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?