A. Steps to Create an rpm Development Tree (if it does not exist)
1. Go to home directory of user (Example : /root)
2. mkdir rpmbuild
3. cd rpmbuild
4. mkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
( or )
we can use "rpmdev-setuptree" to create necessary directories.
B. Installing Dependencies
Below is the list of dependencies specified in the "pbspro.spec" file:
- gcc
- autoconf
- automake
- hwloc-devel
- libX11-devel
- libXt-devel
- libedit-devel
- libical-devel
- ncurses-devel
- perl
- postgresql-devel
- python-devel >= 2.6
- python-devel < 3.0
- tcl-devel
- tk-devel
- swig
- expat-devel (if suse then libexpat-devel)
- openssl-devel (if suse then libopenssl-devel)
1. Install the prerequisite packages for building PBS Pro.
For CentOS systems you should run the following command as root:
yum install -y gcc make rpm-build libtool hwloc-devel \
libX11-devel libXt-devel libedit-devel libical-devel \
ncurses-devel perl postgresql-devel python-devel tcl-devel \
tk-devel swig expat-devel openssl-devel libXext libXft
For openSUSE systems you should run the following command as root:
zypper install gcc make rpm-build libtool hwloc-devel \
libX11-devel libXt-devel libedit-devel libical-devel \
ncurses-devel perl postgresql-devel python-devel tcl-devel \
tk-devel swig libexpat-devel libopenssl-devel libXext-devel \
libXft-devel fontconfig
2. Install the prerequisite packages for running PBS Pro. In addition
to the commands below, you should also install a text editor of
your choosing (vim, emacs, gedit, etc.).
For CentOS systems you should run the following command as root:
yum install -y expat libedit postgresql-server python \
sendmail sudo tcl tk libical
For openSUSE systems you should run the following command as root:
zypper install expat libedit postgresql-server python \
sendmail sudo tcl tk libical1
C. How to build rpm package for PBS Pro 14.1.0 (Source cloned from github)
1. Go to pbspro directory which we have cloned (git clone https://github.com/PBSPro/pbspro)
2. Change directory to src/pbs
[user@hostname pbspro]# cd src/pbs
[user@hostname pbs]# ls
autogen.sh configure.ac doc LICENSE Makefile.am pbspro-rpmlintrc README src win_configure
buildutils COPYRIGHT INSTALL m4 PBS_License.txt pbspro.spec README.md test
3. Run autogen.sh script to generate configure script and makefile
./autogen.sh
(generates configure script and makefile templates)
4. Run ./configure
5. Run the below command
make dist
make dist generates .tar.gz (pbspro-<pbs_version>.tar.gz) file in the same directory.
6. Move the pbspro-<pbs_version>.tar.gz file to ~/rpmbuild/SOURCES
7. Move pbspro/src/pbspro.spec file to ~/rpmbuild/SPECS
8. Change directory to ~/rpmbuild/SPECS
9. Run the below command
rpmbuild -ba pbspro.spec ( This command will generate below rpm packages in ~/rpmbuild/RPMS dirctory)
a) pbspro-client-<pbs_version>-0.x86_64.rpm
b) pbspro-debuginfo-<pbs_version>-0.x86_64.rpm
c) pbspro-execution-<pbs_version>-0.x86_64.rpm
d) pbspro-server-<pbs_version>-0.x86_64.rpm
Note: <pbs_version> specified at pbspro/src/pbspro.spec
D. How to build rpm package from pbspro-<pbs_version>.src.rpm (Download from http://download.opensuse.org/repositories/home:/pbsproci/)
1. Install the pbspro-<pbs_version>.src.rpm, this will install 1) pbspro-14.1.0.tar.gz and 2) pbspro.spec in respective directories under rpmbuild dev tree.
rpm -i pbspro-<pbs_version>.src.rpm
2. Change directory to ~/rpmbuild/SPECS and run the below command
rpmbuild -ba pbspro.spec ( This command will generate below rpm packages in ~/rpmbuild/RPMS dirctory)
a) pbspro-client-<pbs_version>-0.x86_64.rpm
b) pbspro-debuginfo-<pbs_version>-0.x86_64.rpm
c) pbspro-execution-<pbs_version>-0.x86_64.rpm
d) pbspro-server-<pbs_version>-0.x86_64.rpm
E. Installing and Testing an rpm package locally on CentOS7
- After following section 'C' or 'D', change directory to ~/rpmbuild/RPMS
- yum -y install /root/rpmbuild/RPMS/x86_64/pbspro-server-*.x86_64.rpm
- Need to enable mom “PBS_START_MOM=1” in /etc/pbs.conf file
- Start the PBSPro daemons using /etc/init.d/pbs start.
- Need to validate by submitting job and verifying the state.
- yum -y install python-pip sudo which net-tools
- cd test/fw
- pip install -r requirements.txt .
- Need to install PTL(PBS test Lab) by executing “python setup.py install”
- Need to create users needed by PTL by executing "pbs_config --make-ug"
- cd ../tests
- pbs_benchpress -l INFOCLI2 -o ptl.txt
- Once pbs_benchpress completes, you can find the PTL log in ptl.txt.
F. Installing and Testing an rpm package locally on openSUSE 13.2
- After following section 'C' or 'D', change directory to ~/rpmbuild/RPMS
- zypper -n install /root/rpmbuild/RPMS/x86_64/pbspro-server-*.x86_64.rpm
- Need to enable mom “PBS_START_MOM=1” in /etc/pbs.conf file
- Start the PBSPro daemons using /etc/init.d/pbs start.
- Need to validate by submitting job and verifying the state.
- zypper -n install python-pip sudo which net-tools
- cd test/fw
- pip install -r requirements.txt .
- Need to install PTL(PBS test Lab) by executing “python setup.py install”
- Need to create users needed by PTL by executing "pbs_config --make-ug"
- cd ../tests
- pbs_benchpress -l INFOCLI2 -o ptl.txt
- Once pbs_benchpress completes, you can find the PTL log in ptl.txt.