CentOS7 install issues

Dear Wizards,

I really want to take this version of PBSpro for a spin, but I have some installation issues, which I hope that you may address.

We run a small’ish cluster, with dedicated head node (frontend) and some nodes, all installed with CentOS7.2.

I have fetched and scanned the install documentation from
http://www.pbsworks.com/SupportGT.aspx?d=PBS-Professional,-Documentation

If at all possible, I should like to install from pre-compiled packages - either the ones made by Altair (http://pbspro.org/Download.aspx#download) or by compiling to packages myself. Presently, I have problems going down both these paths.

Regarding the precompiled packages (14.1.0-13.1), they presently fail to install on our system due to
A. the packages require sendmail - but we use postfix.
B. the packages require libical.so.0 but we have libical.so.1

Regarding the from-source (git) installation, it seems to be a different version (14.0.1)?
Secondly, I do not really find a lot of information about how to build the packages - only how to install from source directly on a machine (which I would prefer to avoid).

As the pre-compiled version (the zip file) contains a “src-rpm”, it might be possible to compile (with rpmbuild) my own versions of the compiled packages, but again - more information would really be appreciated.

On a side-note I recommend changing from zip to tgz or tar.gz (not that it matters much).

Otherwise - thanks a lot for the initiative.

/Bjarne

Update:

I have read the comments regarding compilation of PBSpro under OHPC
https://github.com/PBSPro/ohpc

The files necessary to compile (pbspro.spec and pbspro.14.1.0.tar.gz) can be found in the src.rpm, which is in the provided zipfile (with centos7 compiled binaries).

Rather than first extracting the files and then compiling (rpmbuild), I have compiled directly with e.g.

rpmbuild --rebuild pbspro-14.1.0-13.1.src.rpm

The compilation goes smoothly, but the resulting binary rpms still require sendmail (and we still use postfix). As far as I know, postfix is sendmail compatible, so it really should not matter.

Next step for me is to actually extract the content of the src.rpm, and see if I can hack the spec to ask for sendmail OR postfix.

/Bjarne

Hi Bjarne,

Thanks for joining the forum and trying to install pbs.

Yes, what you faced is very typical of the CentOS distro. They do upgrade their libraries between minor upgrades, such that a package created for CentOS7 would not work for CentOS7.2 (we saw the libical incompatibility as well).

You seem to have found the src.rpm and did the rpmbuild. The pbs spec file currently lists the dependency on sendmail. You can see the dependency at line 130 in the file pbspro.spec. You might want to change that line to use postfix.

  • One suggestion is to first raise a bug against pbs in the bug repository: pbspro.atlassian.net. That way, you or another community member can submit a fix for pbs to work with postfix.

  • Do you also want to include the current steps of building using the src.rpm in the INSTALL file as an option? If so, you could potentially raise another bug for that.

You might have already seen/used it, but if not, you might want to check out the pbs sources at https://github.com/PBSPro/pbspro. The instructions to install from sources in github is located here: https://github.com/PBSPro/pbspro/blob/master/INSTALL

We are eager to hear back from you as to how your hacking went. Kindly feel free to write back on this forum as well.

Thanks and regards,
Subhasis

Hi Subhasis,

Thank you for replying.

Yes, I found the src.rpm, and yesterday I did mess around with the spec-file - exactly at the line you mention. Thanks, though.

I have tried various things to test it out. I have not actually tested any of the installations - just verified that installation is possible (rpm -i --test), but at least it shows if compilation is possible, and if the generated rpm(s) should be able to install on my system.

Firstly, it may be important for other readers of this thread to get a simple howto - the steps to compile pbspro RPMs to a specific CentOS 7 environment (please correct me if these steps are wrong).
A. Get the centos7 zip-file with pre-compiled rpms. It will containt the necessary src.rpm.
B. Extract the content of the src.rpm like e.g.:
rpm2cpio pbspro-14.1.0-13.1.src.rpm | cpio -idmv
This should generate a tarball and a specfile (pbspro-14.1.0.tar.gz and pbspro.spec).
C. Put the tarball in ~/rpmbuild/SOURCES/
D. Edit the spec-file - I had to replace the sendmail with postfix (but see below!)
perl -pi -e ‘s/^Requires: sendmail$/Requires: postfix/’ pbspro.spec
E. Compile: rpmbuild -bb pbspro.spec
With a bit of luck, new rpms should be generated in ~/rpmbuild/RPMS/x86_64/

Now on with the spec-file issues.
Firstly, sendmail is “obsolete” on RHEL7 (and thus on CentOS7). Redhat writes

Red Hat Enterprise Linux 7 offers two primary MTAs: Postfix and Sendmail.
Postfix is configured as the default MTA and Sendmail is considered deprecated.

ref: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/s1-email-mta.html
So, if you want to hard-code a particular Mail Transport Agent (MTA), then probably postfix is a better choice than sendmail - but see below.

For newer rpm versions (>= 4.13), it is actually possible to write stuff like:
Requires: (sendmail or postfix)
however, for CentOS72, rpm is only v4.11.3, so that does not buy us much (compilation fails if you try).

There seems to be a better solution - which is just to require “any Mail Transport Agent” with:
Requires: MTA
MTA is provided by both sendmail and postfix (and by exim, opensmtpd and ssmtp if you have those in your repo), so it should work for both MTA flavors. Thus, I suggest you simply change this line up-stream.

And yes - I would suggest to include the RPM-build instructions in the INSTALL file. It our site, we certainly prefer to use RPMs to deploy.

I’ll try to raise both as “bugs” - we’ll see how it goes - I’ll refer to this thread for possible solutions.

With regard to the libical issue, I do not really know how to fix this, so that a Centos7 (7.0 or 7.1) build may install on a 7.2 system. Maybe, it just won’t - it is not like you explicitly require the .0 lib - it is probably just the one present in the build environment - while CentOS7.2 use the .1 lib.

Once again, many thanks for the warm reception.

/Bjarne

Hi Bjarne,

Thanks for the detailed email and the updated steps for CentOS7.2. This will be very valuable for other community members as well.

About the libical issue, i have in the past been able to install pbs ignoring/supressing rpm dependencies and then create a softlink from libical to the version that pbs needs. This is really brute force way of making it work, and should not be done on a production system, but just mentioning for academic interest. The right solution (as you have noted already in the issue you raised) is to distribute a version of PBS for CentOS 7.2 (or fix the sendmail dependency from pbspro.sepc to allow community to build PBS from source on CentOS 7.2)

I noticed you have raised the issues on the pbs issue tracker. Many thanks for that. Kindly feel free to submit code fixes for any/all of the issues, or leave them for other community members to work on.

Hi Team

Issue:
Unable to build the PBS pro 13 version as per the below method.
https://pbspro.atlassian.net/wiki/spaces/PBSPro/pages/13991940/Building+PBS+Pro+Using+rpmbuild

Environment detail
CentOS 7.4

Need your input to achieve the requirement.

Thank You
Atul Yadav
Locuz HPC Team

Would oyu give us the error messages which you see please?

Hi All,

There is no error, we are able to build PBS pro 17 Version after following below mention method,
https://pbspro.atlassian.net/wiki/spaces/PBSPro/pages/13991940/Building+PBS+Pro+Using+rpmbuild

But we are looking for PBS pro 13 version.

Thank You
Atul Yadav
Locuz HPC Team

Hello Atul, PBS Pro 13 was a commercial only release and this is the PBS Pro open source forum. The instructions you are pointing to are not intended to work with the version 13 source code package that would have been obtained via a source code agreement with Altair. Please contact your regional Altair support specialist for assistance with this.