#author("2022-09-10T07:17:17+00:00","default:sysosa","sysosa") #author("2022-09-10T08:02:54+00:00","default:sysosa","sysosa") OpenPBSをubuntuで利用するために. コンパイル環境と実行環境はこちらに記載されている [[https://github.com/openpbs/openpbs/blob/master/INSTALL>+https://github.com/openpbs/openpbs/blob/master/INSTALL]] 本筋なら deb パッケージを作って計算ノードが増えた時の対処とかすればいいのだが、debパッケージ作成に向けての rules、control、changelog、copyright を用意する必要がある. rpmのspecファイルがあればそれを参照して作ればいいが、、自動変換ツールはないもよう. &size(10){alienなるrpmパッケージをdebパッケージに変換するものがあるが、たんにバイナリーは同じでdebパッケージになるだけ}; 面倒なのでdebは作らず単純にコンパイルしてみることにした。 パッケージをインストールします #code(nonumber){{ 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を取得します &size(10){git操作はしない. refs/tags/v20.0.1 には ubuntu20.04向けpatchが適用されていないので}; #code(nonumber){{ root@ubuntu:~# git clone https://github.com/openpbs/openpbs root@ubuntu:~# cd openpbs root@ubuntu:~/openpbs# }} relion向けに一部ソースを変更します #code(diff,nonumber){{ 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; }} そしてコンパイルを開始します #code(nonumber){{ 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」もない っで次の作業を行う #code(nonumber){{ 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:~# }} ここで「&color(red){update-rc.d: error: no runlevel symlinks to modify, aborting!};」と表示されるように問題があるようで再度試す まずは設定ファイルらを削除して #code(nonumber){{ root@ubuntu:~# rm -rf /etc/pbs.conf root@ubuntu:~# rm -rf /var/lib/pbs }} 再度作る #code(nonumber){{ root@ubuntu:~# /opt/pbs/libexec/pbs_postinstall }} これで「&color(red){update-rc.d: error: no runlevel symlinks to modify, aborting!};」は消える 次に「/etc/hosts」を調整します. &size(10){/etc/hostsが完備してないとpbs serverが起動しない}; #code(nonumber){{ root@ubuntu:~# vi /etc/hosts 127.0.0.1 localhost 127.0.1.1 ubuntu 192.168.0.68 ubuntu root@ubuntu:~# }} 起動はsystemctlで #code(nonumber){{ root@ubuntu:~# systemctl start pbs }} でok 「qmgr」と実行して「&color(red){qmgr: command not found};」とあるなら、「/etc/profile.d/pbs.{sh,csh}」を噛んでいないため. #code(nonumber){{ . /etc/profile.d/pbs.sh }} とかして環境を呼び込む ***メモ [#kf4006c6] 「/var/lib/pbs/server_logs」にて 「Could not find any usable IP address for host ubuntu」 とあるなら「/etc/hosts」に自分のIPアドレスとホスト名を記載する パーミッション #code(nonumber){{ chmod 4755 /opt/pbs/sbin/pbs_iff /opt/pbs/sbin/pbs_rcp }} 自動起動にするなら #code(nonumber){{ update-rc.d pbs enable /lib/systemd/systemd-sysv-install enable pbs }}