RHEL7/CentOS7向けOTRS4パッケージを作成してみる

先日の記事でやった内容を本家に提案する前に、やった範囲の動作確認をするついでにRPM化を試みてみる。
他人様が作られたRPMはよく使っているけど、独自にそれを作るのは「初」である。

幸いにして、今回の環境であるRHEL7/CentOS7向けのRPM用specファイルの用意があるので、そちらを利用させていただいた…のだが、一筋縄では行かなかった。
例えば、こんなところに古〜いパラメータがあったり。

[修正前]Copyright:    GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007

[修正後]License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007

この書式の問題は、@ITの2007年末の記事の内容を参考に修正しました。
もしかして、この時分から使われないまま寝かされている年代ものなのか?と思わせつつも、2012年にはいじられた形跡*1がある、少々あやしい代物。まぁ、現行のRPM作成には使ってなさそうな雰囲気がアリアリと伝わってきます。

パッケージの中身は、公式のRPMだとTarボールの中身をそのままインストール先にぶちまける仕様になっているので、大抵の場合使わないであろうファイル群(他ディストリ向けのspecファイル、設定ファイルなど)を取り入れない設定を適用してダイエットを計りました*2
また、インストール直後に関連ファイルの権限調整用スクリプトを実行させるように定義を追加*3して、初期状態のまま使う場合のひと手間を省いてます。

ともあれ、準備が整ったところでRPMの作成にうつります*4

# tar cjf otrs-4.0.5.tar.bz2 otrs-4.0.5/
# rpmbuild -bb otrs-4.0.5/scripts/rhel7-otrs-systemd.spec
:
(省略)
:
Exit 0
# ls /root/rpmbuild/RPMS/noarch/otrs-4.0.5-02.noarch.rpm
/root/rpmbuild/RPMS/noarch/otrs-4.0.5-02.noarch.rpm
#
無事作成されましたので、早速「潰し」の効く*5仮想環境でインストールと簡易動作確認を実施しました。
尚、このパッケージの導入時に行われるOTRS用ユーザ(とそのホームディレクトリ)の作成がSELinux的に「越権行為」と見做されるらしく、一時的にSELinuxの設定を(少なくともWebインストーラの実行までは)緩和してやる必要があります。
面倒な場合は思い切ってSELinuxを無効化してしまう向きもあるようですが、実際に動かしてみて「(関連ユーザに)どの程度の権限が必要になるか」等の洗いだしが必要になってくると思うので、"Permissive"を選択しておくのが懸命かと考えます。
# getenforce
Enforcing
# setenforce Permissive
# getenforce
Permissive
# yum install /root/rpmbuild/RPMS/noarch/otrs-4.0.5-02.noarch.rpm
読み込んだプラグイン:fastestmirror, langpacks
./otrs-4.0.5-02.noarch.rpm を調べています: otrs-4.0.5-02.noarch
./otrs-4.0.5-02.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています
:
(省略)
:
Setting permissions on /opt/otrs

インストール:
otrs.noarch 0:4.0.5-02
完了しました!
#

あとは、Systemd経由でOTRSスケジューラを起動してWebインストーラを実行してやれば、基本的な導入作業は完了です。

*1:Copyrightなので一括置換だろうけど…

*2:対象が全てテキストベースのファイルなので、減量範囲もタカが知れてますが…

*3:元のファイルだと作成時に行うとしてるけど…(以下略)

*4:他にもいくつか弄ってますが、細かいので割愛(ぉぃ)

*5:明らかに誤用です