OpenPBSをubuntuで利用するために.

コンパイル環境と実行環境はこちらに記載されている
https://github.com/openpbs/openpbs/blob/master/INSTALL

本筋なら deb パッケージを作って計算ノードが増えた時の対処とかすればいいのだが、debパッケージ作成に向けての
rules、control、changelog、copyright
を用意する必要がある. rpmのspecファイルがあればそれを参照して作ればいいが、、自動変換ツールはないもよう.
alienなるrpmパッケージをdebパッケージに変換するものがあるが、たんにバイナリーは同じでdebパッケージになるだけ

面倒なのでdebは作らず単純にコンパイルしてみることにした。

パッケージをインストールします

root@ubuntu:~# apt-get install gcc make libtool libhwloc-dev libx11-dev \
      libxt-dev libedit-dev libical-dev ncurses-dev perl \
      postgresql-server-dev-all postgresql-contrib python3-dev tcl-dev tk-dev swig \
      libexpat-dev libssl-dev libxext-dev libxft-dev autoconf \
      automake g++
 
root@ubuntu:~#

次にgitでOpenPBSを取得します git操作はしない. refs/tags/v20.0.1 には ubuntu20.04向けpatchが適用されていないので

root@ubuntu:~# git clone https://github.com/openpbs/openpbs
 
root@ubuntu:~# cd openpbs
root@ubuntu:~/openpbs#

relion向けに一部ソースを変更します

diff --git a/src/lib/Libcmds/ck_job_name.c b/src/lib/Libcmds/ck_job_name.c
index 068f4ad2..05a0d113 100644
--- a/src/lib/Libcmds/ck_job_name.c
+++ b/src/lib/Libcmds/ck_job_name.c
@@ -59,7 +59,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;

そしてコンパイルを開始します

root@ubuntu:~/openpbs# ./autogen.sh
 
root@ubuntu:~/openpbs# ./configure --with-pbs-server-home=/var/lib/pbs --prefix=/opt/pbs
 
root@ubuntu:~/openpbs# make -j 20 && make install

これでプログラム関係は /opt/pbs に格納されます.
加えて実行環境整備向けの設定ファイルが「/etc/profile.d/pbs.{sh,csh}」に加えられます

ただ、この段階では「/var/lib/pbs」は作られていない. 加えて「/etc/pbs.conf」もない
っで次の作業を行う

root@ubuntu:~# /opt/pbs/libexec/pbs_postinstall
*** PBS Installation Summary
***
*** Postinstall script called as follows:
*** /opt/pbs/libexec/pbs_postinstall ''
***
*** No configuration file found.
*** Creating new configuration file: /etc/pbs.conf
*** Replacing /etc/pbs.conf with /etc/pbs.conf.20.0.0
*** /etc/pbs.conf has been created.
***
*** Registering PBS as a service.
update-rc.d: error: no runlevel symlinks to modify, aborting!
Synchronizing state of pbs.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable pbs
Created symlink /etc/systemd/system/multi-user.target.wants/pbs.service → /lib/systemd/system/pbs.service.
***
*** PBS_HOME is /var/lib/pbs
*** Creating new file /var/lib/pbs/pbs_environment
*** WARNING: TZ not set in /var/lib/pbs/pbs_environment
***
*** The PBS server has been installed in /opt/pbs/sbin.
*** The PBS scheduler has been installed in /opt/pbs/sbin.
***
*** The PBS communication agent has been installed in /opt/pbs/sbin.
***
*** The PBS MOM has been installed in /opt/pbs/sbin.
***
*** The PBS commands have been installed in /opt/pbs/bin.
***
*** End of /opt/pbs/libexec/pbs_postinstall
root@ubuntu:~#

ここで「update-rc.d: error: no runlevel symlinks to modify, aborting!」と表示されるように問題があるようで再度試す
まずは設定ファイルらを削除して

root@ubuntu:~# rm -rf /etc/pbs.conf
root@ubuntu:~# rm -rf /var/lib/pbs

再度作る

root@ubuntu:~# /opt/pbs/libexec/pbs_postinstall

これで「update-rc.d: error: no runlevel symlinks to modify, aborting!」は消える

次に「/etc/hosts」を調整します. /etc/hostsが完備してないとpbs serverが起動しない

root@ubuntu:~# vi /etc/hosts
127.0.0.1       localhost
127.0.1.1       ubuntu
192.168.0.68    ubuntu
 
root@ubuntu:~#

起動はsystemctlで

root@ubuntu:~# systemctl start pbs

でok

「qmgr」と実行して「qmgr: command not found」とあるなら、「/etc/profile.d/pbs.{sh,csh}」を噛んでいないため.

. /etc/profile.d/pbs.sh

とかして環境を呼び込む

メモ

「/var/lib/pbs/server_logs」にて
「Could not find any usable IP address for host ubuntu」
とあるなら「/etc/hosts」に自分のIPアドレスとホスト名を記載する

パーミッション

chmod 4755 /opt/pbs/sbin/pbs_iff /opt/pbs/sbin/pbs_rcp

自動起動にするなら

update-rc.d pbs enable
 
/lib/systemd/systemd-sysv-install enable pbs

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2022-09-10 (土) 17:02:54 (265d)