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 --exclude-vcs --transform 's/openpbs/openpbs-20.0.1/' -cvzf ~/rpmbuild/SOURCES/openpbs-20.0.1.tar.gz openpbs
 
(git操作をしないなら)
tar --exclude-vcs --transform 's/openpbs/openpbs-20.0.0/' -cvzf ~/rpmbuild/SOURCES/openpbs-20.0.0.tar.gz openpbs

これで「~/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
 
[root@centos8 ~]# dnf --enablerepo=powertools install libXt-devel libical-devel libtool-ltdl-devel perl postgresql-contrib postgresql-devel swig libedit-devel

そうして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 ~]#

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

RockyLinux8.5にてrpmパッケージインストール時に要求されるパッケージ

[root@rockylinux ~]# dnf localinstall ./openpbs-server-20.0.1-0.x86_64.rpm
Last metadata expiration check: 0:22:49 ago on Tue 02 Aug 2022 12:58:01 AM JST.
Dependencies resolved.
=====================================================================================================================================
 Package                         Architecture       Version                                           Repository                Size
=====================================================================================================================================
Installing:
 openpbs-server                  x86_64             20.0.1-0                                          @commandline             3.3 M
Upgrading:
 platform-python-pip             noarch             9.0.3-22.el8.rocky.0                              baseos                   1.6 M
Installing dependencies:
 hwloc-libs                      x86_64             2.2.0-3.el8                                       baseos                   2.0 M
 libical                         x86_64             3.0.3-3.el8                                       baseos                   277 k
 libpq                           x86_64             13.5-1.el8                                        appstream                197 k
 postfix                         x86_64             2:3.5.8-4.el8                                     baseos                   1.5 M
 postgresql                      x86_64             10.21-2.module+el8.6.0+977+ab6e685c               appstream                1.5 M
 postgresql-contrib              x86_64             10.21-2.module+el8.6.0+977+ab6e685c               appstream                806 k
 postgresql-server               x86_64             10.21-2.module+el8.6.0+977+ab6e685c               appstream                5.1 M
 python3-pip                     noarch             9.0.3-22.el8.rocky.0                              appstream                 19 k
 python3-setuptools              noarch             39.2.0-6.el8                                      baseos                   162 k
 python36                        x86_64             3.6.8-38.module+el8.5.0+671+195e4563              appstream                 18 k
 tcl                             x86_64             1:8.6.8-2.el8                                     baseos                   1.1 M
 tk                              x86_64             1:8.6.8-1.el8                                     appstream                1.6 M
 uuid                            x86_64             1.6.2-43.el8                                      appstream                 63 k
Enabling module streams:
 postgresql                                         10
 python36                                           3.6
 
Transaction Summary
=====================================================================================================================================
Install  14 Packages
Upgrade   1 Package

連動する「postgresql」はappstreamのpostgresqlとlibpqが要求される


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2022-03-18 (金) 20:07:24 (154d)