본문 바로가기

Study/Network

Installing NS-2 on Centos 5.3 (Fedora 9.0)

" 2009년 5월 21일 업데이트 됨 "

이 설치법은 VMware 6.0.5 기반 Fedora 9.0 에서 작성 되었고 NS-2의 설치법에 대해서만 다룬다.
또한 필자의 취향이 섞였으므로 본인에 맞게 설정 하는게 좋다.
같은 방법으로 Centos 5.3 에서도 설치 가능 했음을 확인했다.

NS - 2 의 간략한 소개


그럼 본격적인 설치로 들어가겠다.

NS - 2를 설치 하기 위해서는 각종 패키지가 필요한데 NS - 2 만 설치 하려고 하면 필수 패키지가 빠져있어 에러가 난다. 하지만 All in one 으로 되어 있는 파일이 있으니 편리하게 설치할 수 있다. 잡다한게 이것저것 깔리는 게 싫다면 필수 패키지만 다운받아 개별적으로 설치 하도록 하자.
여기서는 편의를 위해 All in one 패키지를 이용해서 설치 한다.

먼저 이곳에서 All in one 패키지를 다운 받을수 있다. 버전 2.33 으로 2009년 5월 현재 최신 버전이다. 다운 받을 경로는 어딜 선택해도 상관없다. 바탕화면이 기본으로 되어 있는 경우가 많으니 편한 곳으로 받도록 하자.




다운로드가 완료되면 지정한 곳에 'ns-allinone-2.33.tar.gz' 라는 이름의 파일이 생겼을 것이다.
내 경우 Download 라는 폴더에 다운로드 하였고 설치를 위해 Util이라는 폴더를 생성 했다.
(위에서 임시로 root로 전환 했었다면 'exit' 명령으로 본래의 ID로 돌아오기 바란다.)

# mkdir ~/Util
# cd ~/Util


설치할 폴더로 이동시키자.
# mv ~/Download/ns-allinone-2.33.tar.gz ./

tar 파일은 윈도우에서 사용하는 zip 과 같은 압축 파일 이다. 따라서 압축을 풀어야 한다. (옵션에 대한 부분은 알아서 공부해라.)
# tar xvfz ns-allinone-2.33.tar.gz

* 팁 : 리눅스 콘솔에서는 현재 폴더의 파일이름을 입력창에 다 쓰지 않고 일부만 입력 한 체로 Tab키를 두번 누르면 나머지 내용이 입력 된다. 명령어도 마찬가지이며 위의 경우 'ns' 까지만 입력 한체 Tab키를 두번 눌러봐라. 한번 해보면 뭔지 알 것이다.

이제 압축이 풀린 폴더로 이동 한다.
# cd ns-allinone-2.33

이 폴더에 들어가면 설치 파일과 인스톨가이드, 각종 패키지들이 들어 있다.
상세한 설명을 보고 싶다면 vi 편집기를 이용해 README 파일을 읽어보자.
영어지만 그냥 감으로도 볼수 있을 만큼 어렵지 않은 내용이다. 설치에 필요한 내용이 기본적으로 README 파일에 포함된 경우가 많다. 그러니 꼭 읽어보는 습관을 들이자.

README 파일을 해석했다고 좋아하면서 인스톨을 시작하면 에러가 뜨게 된다.
설치를 위해 필요한 컴포넌트들을 먼저 설치 하도록 하자. 이것들이 없으면 설치가 불가능하다.
(root로 실행 해야 하는 것도 잊지마라.)
그리고 이 외의 다른 패키지들이 없어 에러가 발생 되면 설치후 재시도 하면 된다.
# yum install autoconf automake libXt-devel libXmu-devel

(에러 메시지 해결을 위해 찾은 곳 : http://www.gidforums.com/t-11746.html?page=5)

3. Installing the package
--------------------------

All you need to do is type "./install" under this directory. The install
script will compile and install the whole package for you. The script also
will tell you the final installation result.

README 파일을 보면 위와 같은 내용이 있다 "./install" 쳐라.
# ./install

혹시 인스톨중에 아래와 같은 에러 메시지가 뜬다면 위에서 설치한 libXt-devel이 정상설치 되었는지 재 확인 하라. 이걸 설치 안하고 오류 난다고 하는 경우가 많았다. (정상 설치 되면 건너뛰자.)
(또한 다른 패키지가 없어서 오류가 나는 경우도 그 패키지를 설치하고 ./install을 다시 실행하자.)
그리고 libXmu-devel 이 없는 경우 별 문제 없이 설치 된 것 같으나 알고보면 nam 이 설치되지 않는다.
그러니 꼭 확인 하자. 만약 이미 설치를 완료 했는데 nam 이 실행 되지 않는 경우라면 먼저 libXmu-devel을 먼저 설치 한 후 ~/Util/ns-allinone-2.33/nam-1.13 폴더로 가서 make 해주기만 하면 끝이다.

"can't find X includes"

# yum install libXt-devel libXmu-devel



위와 같은 메시지가 뜨면 설치는 완료된 것이고 path 설정만이 남았다.
스샷에서 아래와 같은 지시를 하고 있다.

# cd ns-2.33
# ./validate

위 작업은 유효성 테스트인데 시간이 꽤 오래 걸리므로 알아서 판단토록 하자. 이 작업을 끝나고 나면 진정 깔끔하게 설치했다고 할 수 있을 것이다. 필자는 대략 30분쯤 걸린듯 하다.


그럼 이제 본격적으로 ns의 path 설정을 하자.
path를 설정하는 이유는 시스템에 환경변수를 등록해서 설치된 경로를 지정해 주기 위함이다.
이를 통해 리눅스 기본명령어와 같이 사용할 수 있다. 즉, 어떤 경로에서도 실행이 가능하다는 말이다.

vi 편집기를 사용해도 되지만 보다 익숙한 gedit 를 사용하여 편집 하도록 하자.
# gedit ~/.bashrc

* 팁 : ~/<-의 의미는 자신의 홈디렉토리를 말한다.

# NS_PATH
NS2_PATH=/home/yskim/Util  #<- 이곳은 자신이 설치한 폴더를 적는다.
# LD_LIBRARY_PATH
OTCL_LIB=$NS2_PATH/ns-allinone-2.33/otcl-1.13
NS2_LIB=$NS2_PATH/ns-allinone-2.33/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB

# TCL_LIBRARY
TCL_LIB=$NS2_PATH/ns-allinone-2.33/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB

# PATH
XGRAPH=$NS2_PATH/ns-allinone-2.33/bin:$NS2_PATH/ns-allinone-2.33/tcl8.4.18/unix:$NS2_PATH/ns-allinone-2.33/tk8.4.18/unix
NS=$NS2_PATH/ns-allinone-2.33/ns-2.33/
NAM=$NS2_PATH/ns-allinone-2.33/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM

편집기가 열리면 위의 내용을 그대로 복사해서 붙이면 된다.
(* 주의 : 버전별 경로가 다르니 각자의 환경에 맞도록 버전 이름을 적어주면 된다.
allinone 2.33으로 따라 왔다면 그대로 붙여넣어도 무관한데 2번째 줄에 본인이 설치한 폴더를 지정해야만 한다.)

다음 명령으로 적용시키자.
# source ~/.bashrc


ns 라는 명령을 콘솔에 적어서 % 표시가 나온다면 우선 성공이다.

보다 확실한 확인을 위해 예제를 실행해 보자.

# cd ~/Util/ns-allinone-2.33/ns-2.33/tcl/ex
# ns wireless-simple-mac.tcl (이동 중인 두 이동 무선 단말 사이의 ftp 전송)
# nam wireless-simple-mac.nam



축하한다. 설치가 완료 되었다.


- 퍼갈때는 출처를 밝혀 주시기 바랍니다.