珠海網(wǎng)站推廣優(yōu)化最近的新聞大事20條
????????????????????????????????????????如何使用configure腳本安裝PBS
- 0. 禁用SELinux
? ? ? ? ? ? ?OpenPBS不支持SELinux。啟用SELinux后,初始啟動(dòng)失敗 數(shù)據(jù)存儲(chǔ)權(quán)限錯(cuò)誤。您也可以定義適當(dāng)?shù)牟呗?#xff0c;但它是 超出了本指南的范圍。
- 1. 安裝構(gòu)建PBS所需的必備軟件包
? ? ? ? ? ?對(duì)于CentOS-8系統(tǒng),應(yīng)該配置并啟用powertools hwloc-devel和libedit-devel包的Repo。
? ? ? ? ? ??以root用戶(hù)運(yùn)行以下命令:
? ? ? ? ? ? ????????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
? ? ???????????對(duì)于CentOS-7系統(tǒng),您應(yīng)該以root身份運(yùn)行以下命令:
? ?????????????????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++
????????????????對(duì)于openSUSE系統(tǒng),您應(yīng)該以root身份運(yùn)行以下命令:
?????????????????????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
????????????????對(duì)于Debian系統(tǒng),你應(yīng)該以root身份運(yùn)行以下命令:
????????????????????????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
????????????????對(duì)于Ubuntu-18.04系統(tǒng),您應(yīng)該以root用戶(hù)運(yùn)行以下命令:
????????????????????????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++
? ? ? ? ? ? ? ??對(duì)于Ubuntu-24.04系統(tǒng),您應(yīng)該以root用戶(hù)運(yùn)行以下命令:
?????????????????????????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
????????????????對(duì)于使用MacPorts的macOS系統(tǒng),您應(yīng)該以root身份運(yùn)行以下命令:
????????????????????????port install autoconf automake libtool pkgconfig \
? ? ?????????????????????????????????expat hwloc libedit libical openssl postgresql14 python310 \
? ? ? ????????????????????????????????swig-python tcl tk xorg-libX11 xorg-libXt
- 2. 安裝運(yùn)行PBS所需的軟件包。除了 對(duì)于下面的命令,您還應(yīng)該安裝一個(gè)文本編輯器 您的選擇(vim、emacs、gedit等)
????????對(duì)于CentOS系統(tǒng),您應(yīng)該以root身份運(yùn)行以下命令:
?????????????????yum install -y expat libedit postgresql-server postgresql-contrib python3 \
? ? ????????????????????????? sendmail sudo tcl tk libical chkconfig cjson
????????對(duì)于openSUSE系統(tǒng),您應(yīng)該以root身份運(yùn)行以下命令:
????????????????zypper install expat libedit postgresql-server postgresql-contrib python3 \
? ? ????????????????????????? sendmail sudo tcl tk libical1 libcjson1
????????對(duì)于Debian (jessie)系統(tǒng),你應(yīng)該以root身份運(yùn)行以下命令:
????????????????apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
? ? ? ????????????????????????sudo tcl tk libical1a
????????對(duì)于Debian (stretch)系統(tǒng),你應(yīng)該以root身份運(yùn)行以下命令:
????????????????apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
? ? ? ????????????????????????sudo tcl tk libical2
????????對(duì)于Debian (buster)系統(tǒng),您應(yīng)該以root身份運(yùn)行以下命令:
????????????????apt-get install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
? ? ? ????????????????????????sudo tcl tk libical3 libcjson1
????????對(duì)于Ubuntu-18.04系統(tǒng),您應(yīng)該以root用戶(hù)運(yùn)行以下命令:
????????????????apt install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
? ? ?????????????????????????sudo tcl tk libical3 postgresql-server-dev-all
????????對(duì)于Ubuntu-24.04系統(tǒng),您應(yīng)該以root用戶(hù)運(yùn)行以下命令:
????????????????apt install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
? ? ? ????????????????????????sudo tcl tk libical3 postgresql-server-dev-all
????????對(duì)于使用MacPorts的macOS系統(tǒng),您應(yīng)該以root身份運(yùn)行以下命令:
?????????????????port install expat libedit libical openssl postgresql14-server python310 \
? ? ? ????????????????????????tcl tk
- 3. 以普通(非root)用戶(hù)身份打開(kāi)終端,解包PBS Tarball,并CD到包目錄
? ? ? ? ? ? ? ??tar -xpvf openpbs-20.0.0.tar.gz
? ? ????????????cd openpbs-20.0.0
- 4. 生成配置腳本和Makefiles。(見(jiàn)下文附注1)
?????????????????./autogen.sh
- 5. 顯示可用的構(gòu)建參數(shù)
????????????????./configure --help
- 6. 為您的環(huán)境配置構(gòu)建。你可以使用 參數(shù)如下所示。(見(jiàn)下文附注2) ????????
????????對(duì)于CentOS和Debian系統(tǒng),您應(yīng)該運(yùn)行以下命令 命令:
?????????????????./configure --prefix=/opt/pbs
????????對(duì)于openSUSE系統(tǒng)(參見(jiàn)下面的注釋3),您應(yīng)該運(yùn)行 下面的命令:
????????????????./configure --prefix=/opt/pbs --libexecdir=/opt/pbs/libexec
????????對(duì)于使用MacPorts的macOS系統(tǒng),您應(yīng)該運(yùn)行以下命令:
????????????????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一起安裝,請(qǐng)使用該選項(xiàng)
????????????????“——enable-ptl"(見(jiàn)下文附注5)
????????????????例如:/configure——prefix=/opt/pbs——enable-ptl
- 7. 通過(guò)運(yùn)行“make”構(gòu)建PBS。(見(jiàn)下文附注4)
????????????????make
- 8. 配置sudo以允許您的用戶(hù)帳戶(hù)以以下方式運(yùn)行命令 根。請(qǐng)參閱在線手冊(cè)頁(yè)面,了解sudo、sudoers和 visudo。
- 9. 安裝PBS。使用sudo命令以root用戶(hù)運(yùn)行該命令
????????????????sudo make install
- 10. 通過(guò)執(zhí)行安裝后腳本配置PBS
????????????????sudo /opt/pbs/libexec/pbs_postinstall
- 11. 編輯/etc/pbs.conf配置PBS服務(wù) 應(yīng)該開(kāi)始了。如果只安裝PBS 對(duì)于一個(gè)系統(tǒng),您應(yīng)該更改PBS_START_MOM的值 從0到1。如果您使用vi作為編輯器,則可以這樣做 運(yùn)行:
????????????????sudo vi /etc/pbs.conf
- 12. 必須修改某些文件權(quán)限以添加SUID權(quán)限
?????????????????sudo chmod 4755 /opt/pbs/sbin/pbs_iff /opt/pbs/sbin/pbs_rcp
??
- 13. 啟動(dòng)PBS服務(wù)
????????????????sudo /etc/init.d/pbs start
- 14. 所有配置的PBS服務(wù)現(xiàn)在都應(yīng)該正在運(yùn)行。更新 您的PATH和MANPATH變量通過(guò)尋找適當(dāng)?shù)?PBS配置文件或注銷(xiāo)和重新登錄
????????對(duì)于Bourne shell(或類(lèi)似的)運(yùn)行以下命令:
?????????????????. /etc/profile.d/pbs.sh
????????對(duì)于C shell(或類(lèi)似的)運(yùn)行以下命令:
?????????????????source /etc/profile.d/pbs.csh
?
- 15. 現(xiàn)在應(yīng)該能夠運(yùn)行PBS命令來(lái)提交 以及查詢(xún)?nèi)蝿?wù)。下面是一些例子。
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或調(diào)整任何文件上的時(shí)間戳 都是自動(dòng)生成的,您需要重新生成它們 重新運(yùn)行autogen.sh。
????????注意2:建議創(chuàng)建一個(gè)簡(jiǎn)單的shell腳本來(lái)調(diào)用 根據(jù)您的環(huán)境使用適當(dāng)?shù)倪x項(xiàng)進(jìn)行配置。這 過(guò)程中使用相同的參數(shù)調(diào)用configure 隨后的調(diào)用。如果您已經(jīng)運(yùn)行了configure,則可以 通過(guò)運(yùn)行"; /config.status";重新生成所有的makefile。 配置文件的前幾行。狀態(tài)將顯示選項(xiàng) 在運(yùn)行configure時(shí)指定的。如果你設(shè)置了環(huán)境 變量,如CFLAGS,最好將其作為參數(shù) 配置(例如:/configure CFLAGS="- 0 -g&quo
????????注3:openSUSE rpm包將%_libexecdir擴(kuò)展為/opt/pbs/lib 而不是/opt/pbs/libexec,這會(huì)導(dǎo)致post- 安裝腳本。提供要配置的——libexecdir值 重寫(xiě)此行為。
????????注意4:您需要使用POSIX(或接近POSIX) make。GNU使 在這方面工作得很好;BSD make沒(méi)有。如果你是 如果有任何類(lèi)型的構(gòu)建問(wèn)題,您的make應(yīng)該是一個(gè)素?cái)?shù) 可疑的。已經(jīng)花費(fèi)了巨大的努力來(lái)提供適當(dāng)?shù)?依賴(lài)生成和生成文件,而不依賴(lài)任何 posix功能。通過(guò)一個(gè)簡(jiǎn)單的調(diào)用,構(gòu)建應(yīng)該可以正常工作 然而,通過(guò)使用各種make標(biāo)志來(lái)使事情復(fù)雜化 并不能保證有效。不要驚訝,如果第一件事 make所做的就是再次調(diào)用configure。
????????注意5:PTL安裝在PBS所在的父目錄中 安裝。例如,如果您指定了install prefix=/opt/pbs,那么 您可以在/opt/ PTL目錄下找到PTL安裝。你可能需要 退出并從終端登錄PATH和PYTHONPATH進(jìn)行更新。
使用valgrind與PBS。
-------------------------------------
下面是檢測(cè)PBS代碼中的內(nèi)存錯(cuò)誤/泄漏的一組步驟。
1. 安裝valgrind開(kāi)發(fā)包。
????????yum install valgrind-devel (zypper for OpenSUSE).
2. 以一種valgrind可以使用的方式編譯Python,如下所示:
?????????./configure --prefix=<installdir> --without-pymalloc --with-pydebug --with-valgrind
? ???????make; make install
3. 使用特殊的python并在調(diào)試模式下編譯PBS,如下所示:
????????./configure --prefix=<installdir> --with-python=<python-dir> ?CFLAGS="-g -DPy_DEBUG -DDEBUG -Wall -Werror"
4. 在valgrind下運(yùn)行pbs daemons。
????????a)檢測(cè)內(nèi)存錯(cuò)誤(不是泄漏)運(yùn)行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來(lái)檢測(cè)內(nèi)存泄漏。供應(yīng)如下:
?????????????????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