rpmbuildの下準備

っで、まずは下準備

[root@centos7 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
 
[root@centos7 ~]# mkdir -p ~/rpmbuild/{SOURCES,SPECS}

pbsproソースファイルの作成

https://github.com/openpbs/openpbsから最新コードが入手可能で、
ここでは v20.0.1 を調理します. *branchで最新系列でもいいのですが、特定のバージョンで作ることにしました
まずはgitで取得します

[root@centos7 ~]# git clone https://github.com/openpbs/openpbs
[root@centos7 ~]# cd openpbs/
[root@centos7 openpbs]# git tag
 :
v20.0.0
v20.0.1
vMSVR.A1
 
[root@centos7 openpbs]# git checkout -b v20.0.1 refs/tags/v20.0.1
Switched to a new branch 'v20.0.1'
[root@centos7 openpbs]# git branch
  master
* v20.0.1
[root@centos7 openpbs]#

*tagで v14.1.2, v14.1.0とかあるけど、どうもコンパイルできない. libicalのライブラリ参照位置が異なっている

Relion/OpenPBSにあるようにジョブ名称に「/」文字を許可させる これがないとrelionでOpenPBSが使えない...

diff --git a/src/lib/Libcmds/ck_job_name.c b/src/lib/Libcmds/ck_job_name.c
index decfc3c..63de362 100644
--- a/src/lib/Libcmds/ck_job_name.c
+++ b/src/lib/Libcmds/ck_job_name.c
@@ -60,7 +60,7 @@ isalnumspch(int c)
        if (isalnum(c) != 0)
                return c;
 
-       if (c == '-' || c == '_' || c == '+' || c == '.')
+       if (c == '-' || c == '_' || c == '+' || c == '.' || c == '/' )
                return c;
 
        return 0;

rpmbuildでビルドするための準備

[root@centos7 openpbs]# cd ..
[root@centos7 ~]# tar cvfz ~/rpmbuild/SOURCES/openpbs-20.0.1.tar.gz openpbs --transform 's/openpbs/openpbs-20.0.1/' --exclude "openpbs/.git*"

これで「~/rpmbuild/SOURCES」にソースtarballが用意される(~/rpmbuild/SOURCES/pbspro-20.0.1.tar.gz)

あとはopenpbsのspecファイルを「~/rpmbuild/SPECS/」内に配置する
幸い openpbs の git にはopenpbs.specファイルが用意されているのでこれをそのまま採用します

[root@centos7 ~]# cp openpbs/openpbs.spec ~/rpmbuild/SPECS/

そのままでもいいのだが、一部specファイルを修正します。

OpenPBS specファイルの修正

OpenPBSの既定の場所を変更してます. 全くの好みです. Torqueがこの場所を使っていたので

--- /root/rpmbuild/SPECS/openpbs.spec.orig      2021-05-16 00:04:06.867531390 +0900
+++ /root/rpmbuild/SPECS/openpbs.spec   2021-05-16 00:04:29.739709099 +0900
@@ -56,7 +56,7 @@
 %endif
 
 %if !%{defined pbs_home}
-%define pbs_home /var/spool/pbs
+%define pbs_home /var/lib/pbs
 %endif
 
 %if !%{defined pbs_dbuser}

rpmbuildの実行

その前にOpenPBSのbiuldに必要なパッケージをyum/dnfでインストール。

[root@centos7 ~]# yum  install expat-devel hwloc-devel libXt-devel libedit-devel libical-devel \
                           libtool-ltdl-devel ncurses-devel openssl-devel perl \
                           postgresql-contrib postgresql-devel python3-devel \
                           swig tcl-devel tk-devel zlib-devel libXext

そうしてrpmbuildを実行します

[root@centos7 ~]# rpmbuild -ba rpmbuild/SPECS/openpbs.spec

完成品がこれ

[root@centos7 ~]# ls -lh rpmbuild/RPMS/x86_64/
total 16M
-rw-r--r--. 1 root root 1.8M May 16 14:14 openpbs-client-20.0.1-0.x86_64.rpm
-rw-r--r--. 1 root root 7.8M May 16 14:14 openpbs-debuginfo-20.0.1-0.x86_64.rpm
-rw-r--r--. 1 root root 419K May 16 14:14 openpbs-devel-20.0.1-0.x86_64.rpm
-rw-r--r--. 1 root root 2.2M May 16 14:14 openpbs-execution-20.0.1-0.x86_64.rpm
-rw-r--r--. 1 root root 3.3M May 16 14:14 openpbs-server-20.0.1-0.x86_64.rpm
[root@centos7 ~]#

品目が分かりやすくていい


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-05-16 (日) 14:16:10 (74d)