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}」を噛んでいないため.
とかして環境を呼び込む
メモ †
「/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