본문 바로가기
이것저것구축하기/MPI_Cluster

OpenPBS 2.3.16 빌드하기..

by 곰네Zip 2008. 6. 16.
OpenPBS 2.3.16을 다운로드 한다
(다운로드는 http://www.openpbs.org 이곳으로 가면 찾을수있을듯)

그리고 openpbs-error.patch와 openpbs-gcc32.patch를 역시 같이 다운받는다.

그리고 다운받은 openpbs.tar.bz2(혹은 gz)
을 압축을 해제한다. bzip2 -d openpbs.tar.bz2 | -xf인가 tar xf인가를 활용하거나
아니면 bzip2 -d openpbs.tar.bz2 한후 tar xvf openpbs.tar로 풀어낸다.

openpbs(압축푼디렉토리)디렉토리에 다운받은 패치파일 두개를 복사한다.

openpbs디렉토리로 이동하여 패치를 우선 수행한다

patch -p1 < openpbs-error.patch
patch -p1 < openpbs-gcc32.patch

그리고 src/server/svr_connect.c 파일의 include하는 부분에 error.h를 인클루드
#include <error.h>

그리고 ./configure한다. --prefix=$설치경로 --enable-docs(man설치시) --disable-mom(계산노드로 사용하지 않으려고 할 경우에 해당함. 안쓴다고 보는편이 더 좋을듯.. ㅋ;;;) --disable-server(클라이언트 노드에서는 이거 붙여주자.)

그리고 make.

만약 make시 에러가 날경우
pbs_node.h:196:error : arraytype 어쩌구 저쩌구하는거... 날수가 있다.
그 파일은
openpbs/src/include/pbs_node.h 에 위치하고있고 이것을 열어보자 vi로...
그러면 에러난 줄 있는곳에 아마 attribute가 있을것이다. 그러나 이 파일은 include되어있지않다.
당연히 뻑이 나지...-_-; (물론 다른것일수도 있습니다. 역시 아마 헤더파일 포함에러일듯 ㅋ)
그러면 그파일을 추가해준다. 물론 미리 포함되었을경우 포함하면 안되므로
#ifndef ATTRIBUTE_H (attribute.h파일에 정의된 값임)
#include "attribute.h"
#endif 이렇게 넣어주는 센스는 잊지않도록.

다시 make해보자..
이번엔 list_link어쩌고 하는 에러가 주루룩~ 나열될 것이다.(아님말고 안나면 다행 ㅋㅋㅋ)
그거는 이번에 attribute.h파일로 가보자(역시 pbs_nodes.h와 같은디렉토리에 위치한다)

그파일을 열고 이번엔 list_link.h파일을 인클루드
#ifndef LIST_LINK_H
#include "list_link.h"
#endif
이렇게 하고 make를 해보자....
조금 시간이 걸린다... 담배한대 피우던가 하자...
그리고나면 아마 문제없이 make가 되었을것이고...

이제 make install로 설치하자.
이 작업이 완료되면...
pbs server를 초기화하는 작업을 진행한다.
/usr/spool/PBS/server_name 파일에 서버노드 이름을 적어주고
/usr/spool/PBS/server_priv/nodes 파일을 만들어 그안에 노드 이름을 다 적어준다.

그 후에
$pbs설치디렉토리/sbin/pbs_server -t create하여 serverdb파일을 만들고
qmgr로 서버속성을 설정해준다
$pbs설치디렉토리/bin/qterm으로 디비저장작업 종료
그후에 pbs서버 시작~
반응형

댓글