当前位置: 首页 > news >正文

如何使用configure脚本安装PBS

                                        如何使用configure脚本安装PBS

  • 0. 禁用SELinux

             OpenPBS不支持SELinux。启用SELinux后,初始启动失败 数据存储权限错误。您也可以定义适当的策略,但它是 超出了本指南的范围。

  • 1. 安装构建PBS所需的必备软件包

           对于CentOS-8系统,应该配置并启用powertools hwloc-devel和libedit-devel包的Repo。

            以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++ cjson-devel

               对于CentOS-7系统,您应该以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++

                对于openSUSE系统,您应该以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++ cJSON-devel

                对于Debian系统,你应该以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 \
                                     automake g++ libcjson-dev

                对于Ubuntu-18.04系统,您应该以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 \
                                   automake g++

                对于Ubuntu-24.04系统,您应该以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 \
                                     automake g++ libcjson-dev

                对于使用MacPorts的macOS系统,您应该以root身份运行以下命令:

                        port install autoconf automake libtool pkgconfig \
                                     expat hwloc libedit libical openssl postgresql14 python310 \
                                      swig-python tcl tk xorg-libX11 xorg-libXt

  • 2. 安装运行PBS所需的软件包。除了 对于下面的命令,您还应该安装一个文本编辑器 您的选择(vim、emacs、gedit等)

        对于CentOS系统,您应该以root身份运行以下命令:

                 yum install -y expat libedit postgresql-server postgresql-contrib python3 \
                              sendmail sudo tcl tk libical chkconfig cjson

        对于openSUSE系统,您应该以root身份运行以下命令:

                zypper install expat libedit postgresql-server postgresql-contrib python3 \
                              sendmail sudo tcl tk libical1 libcjson1

        对于Debian (jessie)系统,你应该以root身份运行以下命令:

                apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
                              sudo tcl tk libical1a

        对于Debian (stretch)系统,你应该以root身份运行以下命令:

                apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
                              sudo tcl tk libical2

        对于Debian (buster)系统,您应该以root身份运行以下命令:

                apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
                              sudo tcl tk libical3 libcjson1

        对于Ubuntu-18.04系统,您应该以root用户运行以下命令:

                apt install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
                             sudo tcl tk libical3 postgresql-server-dev-all

        对于Ubuntu-24.04系统,您应该以root用户运行以下命令:

                apt install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
                              sudo tcl tk libical3 postgresql-server-dev-all

        对于使用MacPorts的macOS系统,您应该以root身份运行以下命令:

                 port install expat libedit libical openssl postgresql14-server python310 \
                              tcl tk

  • 3. 以普通(非root)用户身份打开终端,解包PBS Tarball,并CD到包目录

                tar -xpvf openpbs-20.0.0.tar.gz
                cd openpbs-20.0.0

  • 4. 生成配置脚本和Makefiles。(见下文附注1)

                 ./autogen.sh

  • 5. 显示可用的构建参数

                ./configure --help

  • 6. 为您的环境配置构建。你可以使用 参数如下所示。(见下文附注2)         

        对于CentOS和Debian系统,您应该运行以下命令 命令:

                 ./configure --prefix=/opt/pbs

        对于openSUSE系统(参见下面的注释3),您应该运行 下面的命令:

                ./configure --prefix=/opt/pbs --libexecdir=/opt/pbs/libexec

        对于使用MacPorts的macOS系统,您应该运行以下命令:

                export CPATH=/opt/local/include/postgresql14:/opt/local/include
                export LIBRARY_PATH=/opt/local/lib/postgresql14:/opt/local/lib
                ./configure --with-swig=/opt/local --with-tcl=/opt/local

        如果PTL需要与PBS一起安装,请使用该选项

                “——enable-ptl"(见下文附注5)

                例如:/configure——prefix=/opt/pbs——enable-ptl

  • 7. 通过运行“make”构建PBS。(见下文附注4)

                make

  • 8. 配置sudo以允许您的用户帐户以以下方式运行命令 根。请参阅在线手册页面,了解sudo、sudoers和 visudo。
  • 9. 安装PBS。使用sudo命令以root用户运行该命令

                sudo make install

  • 10. 通过执行安装后脚本配置PBS

                sudo /opt/pbs/libexec/pbs_postinstall

  • 11. 编辑/etc/pbs.conf配置PBS服务 应该开始了。如果只安装PBS 对于一个系统,您应该更改PBS_START_MOM的值 从0到1。如果您使用vi作为编辑器,则可以这样做 运行:

                sudo vi /etc/pbs.conf

  • 12. 必须修改某些文件权限以添加SUID权限

                 sudo chmod 4755 /opt/pbs/sbin/pbs_iff /opt/pbs/sbin/pbs_rcp

  

  • 13. 启动PBS服务

                sudo /etc/init.d/pbs start

  • 14. 所有配置的PBS服务现在都应该正在运行。更新 您的PATH和MANPATH变量通过寻找适当的 PBS配置文件或注销和重新登录

        对于Bourne shell(或类似的)运行以下命令:

                 . /etc/profile.d/pbs.sh

        对于C shell(或类似的)运行以下命令:

                 source /etc/profile.d/pbs.csh
 

  • 15. 现在应该能够运行PBS命令来提交 以及查询任务。下面是一些例子。

bash$ qstat -B
Server             Max   Tot   Que   Run   Hld   Wat   Trn   Ext Status
---------------- ----- ----- ----- ----- ----- ----- ----- ----- -----------
host1                0     0     0     0     0     0     0     0 Active
bash$ pbsnodes -a
host1
     Mom = host1
     ntype = PBS
     state = free
     pcpus = 2
     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
     resv_enable = True
     sharing = default_shared
     license = l

bash$ echo "sleep 60" | qsub
0.host1
bash$ qstat -a

host1:
                                                            Req'd  Req'd   Elap
Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time  S Time
--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
0.host1         mike     workq    STDIN        2122   1   1    --    --  R 00:00

bash$

--------------------------------------------------------------------

  • 注:

        注1:如果修改配置。Ac或调整任何文件上的时间戳 都是自动生成的,您需要重新生成它们 重新运行autogen.sh。

        注意2:建议创建一个简单的shell脚本来调用 根据您的环境使用适当的选项进行配置。这 过程中使用相同的参数调用configure 随后的调用。如果您已经运行了configure,则可以 通过运行"; /config.status";重新生成所有的makefile。 配置文件的前几行。状态将显示选项 在运行configure时指定的。如果你设置了环境 变量,如CFLAGS,最好将其作为参数 配置(例如:/configure CFLAGS="- 0 -g&quo

        注3:openSUSE rpm包将%_libexecdir扩展为/opt/pbs/lib 而不是/opt/pbs/libexec,这会导致post- 安装脚本。提供要配置的——libexecdir值 重写此行为。

        注意4:您需要使用POSIX(或接近POSIX) make。GNU使 在这方面工作得很好;BSD make没有。如果你是 如果有任何类型的构建问题,您的make应该是一个素数 可疑的。已经花费了巨大的努力来提供适当的 依赖生成和生成文件,而不依赖任何 posix功能。通过一个简单的调用,构建应该可以正常工作 然而,通过使用各种make标志来使事情复杂化 并不能保证有效。不要惊讶,如果第一件事 make所做的就是再次调用configure。

        注意5:PTL安装在PBS所在的父目录中 安装。例如,如果您指定了install prefix=/opt/pbs,那么 您可以在/opt/ PTL目录下找到PTL安装。你可能需要 退出并从终端登录PATH和PYTHONPATH进行更新。

使用valgrind与PBS。

-------------------------------------

下面是检测PBS代码中的内存错误/泄漏的一组步骤。

1. 安装valgrind开发包。

        yum install valgrind-devel (zypper for OpenSUSE).

2. 以一种valgrind可以使用的方式编译Python,如下所示:

         ./configure --prefix=<installdir> --without-pymalloc --with-pydebug --with-valgrind
         make; make install

3. 使用特殊的python并在调试模式下编译PBS,如下所示:

        ./configure --prefix=<installdir> --with-python=<python-dir>  CFLAGS="-g -DPy_DEBUG -DDEBUG -Wall -Werror"

4. 在valgrind下运行pbs daemons。

        a)检测内存错误(不是泄漏)运行pbs daemons,如下所示:

                 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)使用提供的泄漏抑制文件valgrind来检测内存泄漏。供应如下:

                 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

相关文章:

  • 图形编辑器基于Paper.js教程29:基于图层的所有矢量图元的填充规则实现
  • 组策略关闭 Windows 防火墙指南(企业版/专业版)
  • SpringMVC系列(一)(介绍,简单应用以及路径位置通配符)
  • 机器学习实验报告5-K-means 算法
  • Linux--存储系统探秘:从块设备到inode
  • 影视剧学经典系列-梁祝-陶渊明《感士不遇赋并序》
  • Appium+python自动化(二十三)- Monkeyrunner与Monkey
  • React forwardRef 与 useImperativeHandle 深度解析
  • selenium点击元素出现的obscure问题
  • 设计模式精讲 Day 2:工厂方法模式(Factory Method Pattern)
  • 什么是敏捷中的迭代(Iteration)和 Sprint?
  • 计算机硬件——主板
  • 【旧题新解】第 9 集 带余除法
  • Java 常用类 Arrays:从零到实战的数组操作指南
  • ArkUI-X框架LogInterface使用指南
  • 安卓9.0系统修改定制化____深入解析安卓 9.0 各手机分区:功能、作用与差异 基础篇二
  • Java的DI依赖注入
  • 易采集EasySpider v0.6.3 便携版
  • HTML5+JS实现一个简单的SVG 贝塞尔曲线可视化设计器,通过几个点移动位置,控制曲线的方向
  • Arcgis中,toolbox工具箱中工具莫名报错的解决方法
  • 视频发布到哪些平台可以赚钱/吉林关键词优化的方法
  • 网站做的很差的案例/seo优化的网站
  • 高端手机网站设计/怎么创建网站的快捷方式
  • 一个网站的建设方案/云搜索系统
  • 做婚纱网站的图片/谷歌浏览器安卓版下载
  • 攀枝花移动网站建设/网站历史权重查询