| -------------------------------------------------------------------- |
| How to install PBS using the configure script. |
| 1. Install the prerequisite packages for building PBS. |
| For CentOS-8 systems you should configure and enable powertools |
| repo for hwloc-devel and libedit-devel packages. |
| You should run the following commands as root: |
| dnf install -y dnf-plugins-core |
| dnf config-manager --set-enabled powertools |
| dnf install -y gcc make rpm-build libtool hwloc-devel \ |
| libX11-devel libXt-devel libedit-devel libical-devel \ |
| ncurses-devel perl postgresql-devel postgresql-contrib python3-devel tcl-devel \ |
| tk-devel swig expat-devel openssl-devel libXext libXft \ |
| autoconf automake gcc-c++ |
| For CentOS-7 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 postgresql-contrib python3-devel tcl-devel \ |
| tk-devel swig expat-devel openssl-devel libXext libXft \ |
| autoconf automake gcc-c++ |
| 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 postgresql-contrib python3-devel tcl-devel \ |
| tk-devel swig libexpat-devel libopenssl-devel libXext-devel \ |
| libXft-devel fontconfig autoconf automake gcc-c++ |
| For Debian systems you should run the following command as root: |
| 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 \ |
| For Ubuntu-18.04 systems you should run the following command as root: |
| apt 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 \ |
| For macOS systems using MacPorts you should run the following command as root: |
| port install autoconf automake libtool pkgconfig \ |
| expat hwloc libedit libical openssl postgresql12 python38 \ |
| swig-python tcl tk xorg-libX11 xorg-libXt |
| 2. Install the prerequisite packages for running PBS. 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 postgresql-contrib python3 \ |
| sendmail sudo tcl tk libical |
| For openSUSE systems you should run the following command as root: |
| zypper install expat libedit postgresql-server postgresql-contrib python3 \ |
| sendmail sudo tcl tk libical1 |
| For Debian (jessie) systems you should run the following command as root: |
| apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \ |
| For Debian (stretch) systems you should run the following command as root: |
| apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \ |
| For Debian (buster) systems you should run the following command as root: |
| apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \ |
| For Ubuntu-18.04 systems you should run the following command as root: |
| apt install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \ |
| sudo tcl tk libical3 postgresql-server-dev-all |
| For macOS systems using MacPorts you should run the following command as root: |
| port install expat libedit libical openssl postgresql12-server python38 \ |
| 3. Open a terminal as a normal (non-root) user, unpack the PBS |
| tarball, and cd to the package directory. |
| tar -xpvf openpbs-20.0.0.tar.gz |
| 4. Generate the configure script and Makefiles. (See note 1 below) |
| 5. Display the available build parameters. |
| 6. Configure the build for your environment. You may utilize the |
| parameters displayed in the previous step. (See note 2 below) |
| For CentOS and Debian systems you should run the following |
| ./configure --prefix=/opt/pbs |
| For openSUSE systems (see note 3 below) you should run the |
| ./configure --prefix=/opt/pbs --libexecdir=/opt/pbs/libexec |
| For macOS systems using MacPorts you should run the following commands: |
| export CPATH=/opt/local/include/postgresql12:/opt/local/include |
| export LIBRARY_PATH=/opt/local/lib/postgresql12:/opt/local/lib |
| ./configure --with-swig=/opt/local --with-tcl=/opt/local |
| If PTL needs to be installed along with PBS use the option |
| "--enable-ptl" (see note 5 below) |
| eg ./configure --prefix=/opt/pbs --enable-ptl |
| 7. Build PBS by running "make". (See note 4 below) |
| 8. Configure sudo to allow your user account to run commands as |
| root. Refer to the online manual pages for sudo, sudoers, and |
| 9. Install PBS. Use sudo to run the command as root. |
| 10. Configure PBS by executing the post-install script. |
| sudo /opt/pbs/libexec/pbs_postinstall |
| 11. Edit /etc/pbs.conf to configure the PBS services that |
| should be started. If you are installing PBS on only |
| one system, you should change the value of PBS_START_MOM |
| from zero to one. If you use vi as your editor, you would |
| 12. Some file permissions must be modified to add SUID privilege. |
| sudo chmod 4755 /opt/pbs/sbin/pbs_iff /opt/pbs/sbin/pbs_rcp |
| 13. Start the PBS services. |
| sudo /etc/init.d/pbs start |
| 14. All configured PBS services should now be running. Update |
| your PATH and MANPATH variables by sourcing the appropriate |
| PBS profile or logging out and back in. |
| For Bourne shell (or similar) run the following: |
| For C shell (or similar) run the following: |
| source /etc/profile.d/pbs.csh |
| 15. You should now be able to run PBS commands to submit |
| and query jobs. Some examples follow. |
| Server Max Tot Que Run Hld Wat Trn Ext Status |
| ---------------- ----- ----- ----- ----- ----- ----- ----- ----- ----------- |
| host1 0 0 0 0 0 0 0 0 Active |
| resources_available.arch = linux |
| resources_available.host = host1 |
| resources_available.mem = 2049248kb |
| resources_available.ncpus = 2 |
| resources_available.vnode = host1 |
| resources_assigned.accelerator_memory = 0kb |
| resources_assigned.mem = 0kb |
| resources_assigned.naccelerators = 0 |
| resources_assigned.ncpus = 0 |
| resources_assigned.vmem = 0kb |
| bash$ echo "sleep 60" | qsub |
| Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time |
| --------------- -------- -------- ---------- ------ --- --- ------ ----- - ----- |
| 0.host1 mike workq STDIN 2122 1 1 -- -- R 00:00 |
| -------------------------------------------------------------------- |
| Note 1: If you modify configure.ac or adjust timestamps on any files |
| that are automatically generated, you will need to regenerate them |
| by re-running autogen.sh. |
| Note 2: It is advisable to create a simple shell script that calls |
| configure with the appropriate options for your environment. This |
| ensures configure will be called with the same arguments during |
| subsequent invocations. If you have already run configure you can |
| regenerate all of the Makefiles by running "./config.status". |
| The first few lines of config.status will reveal the options that |
| were specified when configure was run. If you set envirnment |
| variables such as CFLAGS it is best to do so as an argument to |
| configure (e.g. ./configure CFLAGS="-O0 -g" --prefix=/opt/pbs). |
| This will ensure consistency when config.status regenerates the |
| Note 3: The openSUSE rpm package expands %_libexecdir to /opt/pbs/lib |
| rather than /opt/pbs/libexec which causes problems for the post- |
| install scripts. Providing the --libexecdir value to configure |
| Note 4: You need to use a POSIX (or nearly POSIX) make. GNU make |
| works quite well in this regard; BSD make does not. If you are |
| having any sort of build problems, your make should be a prime |
| suspect. Tremendous effort has been expended to provide proper |
| dependency generation and makefiles without relying on any |
| non-POSIX features. The build should work fine with a simple call |
| to make, however, complicating things by using various make flags |
| is not guaranteed to work. Don't be surprised if the first thing |
| that make does is call configure again. |
| Note 5: PTL gets installed in the parent directory of where PBS |
| is installed. For example if you have given install prefix=/opt/pbs, then |
| you can find PTL installation in the directory /opt/ptl . You may need to |
| log out and log in from the terminal for PATH and PYTHONPATH to update. |
| ------------------------------------- |
| Here is a set of steps to detect memory errors/leaks within PBS code. |
| 1. Install the valgrind development package. |
| yum install valgrind-devel (zypper for OpenSUSE). |
| 2. Compile Python in a way that valgrind can work with it, as follows: |
| ./configure --prefix=<installdir> --without-pymalloc --with-pydebug --with-valgrind |
| 3. Compile PBS with the special python and in debug mode as follows: |
| ./configure --prefix=<installdir> --with-python=<python-dir> CFLAGS="-g -DPy_DEBUG -DDEBUG -Wall -Werror" |
| 4. Run pbs daemons under valgrind. |
| a) To detect memory errors (not leaks) run pbs daemons as follows: |
| export LD_LIBRARY_PATH=/opt/pbs/pgsql/lib:/opt/pbs/lib:$LD_LIBRARY_PATH |
| valgrind --tool=memcheck --log-file=/tmp/val.out /opt/pbs/sbin/pbs_server.bin |
| b) To detect memory leaks use the supplied leaks suppression file valgrind.supp, as follows: |
| export LD_LIBRARY_PATH=/opt/pbs/pgsql/lib:/opt/pbs/lib:$LD_LIBRARY_PATH |
valgrind --tool=memcheck
--log-file=/tmp/val.out --suppressions=./valgrind.supp --leak-check=full
--track-origins=yes /opt/pbs/sbin/pbs_server.bin
https://github.com/openpbs/openpbs/blob/master/INSTALL
إرسال تعليق