安装环境:Ubuntu 10.04 + ns-allinone-2.33
注:建议执行的步骤为 1,2,3,7,4,5,6 可以免去重复安装的过程(经验之谈)。
1、将ns2的压缩包ns-allinone-2.33.tar.gz拷贝到桌面,右键解压到桌面,将解压后的文件夹剪切到你想安装的位置,例如在我的文件夹home/liu(liu是我的登录用户名)下新建文件夹Program,将ns2的文件夹粘帖到home/liu/Program下
2、在终端里下载所需安装包
(1)打开一个终端,输入sudo -i 回车输入root密码进入root权限操作
(2)下载并安装ns-2.33安装时需要的系统包
首先,在终端里输入apt-get install build-essential 进行下载安装,这一步是为了gcc and some essential 的安装;
接着,在终端里输入apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev 进行下载安装,这一步是为了tcl and tk 的安装;
最后,在终端里输入apt-get install libxmu-dev 进行下载安装,这一步是为了nam的安装。
3、检查gcc版本
如果gcc的版本大于4.0则在./install之前要做一些修改("gcc 4.0版本以前是用ld -share来生成共享库的,但是到了4.0以上的版本(我的为gcc version 4.4.1),这个命令改为了gcc -share即可")
补充:怎样查看gcc版本?
终端执行ls /usr/bin/gcc –l或者gcc –version或者gcc -v
查看过gcc版本之后,如果确实是4.0以上的版本,需要做以下修改:
cd /home/liu/Program/ns-allinone-2.33//otcl-1.13
sudo gedit configure.in
将77行,
SHLIB_LD="ld -shared"
改为
SHLIB_LD="gcc -shared"
保存,退出
同时修改configure 第5518行
SHLIB_LD="ld -shared"
改为
SHLIB_LD="gcc -shared"
保存退出
4、安装ns2
移动到ns2目录下cd /home/liu/Program/ns-allinone-2.33/
安装 ./install
接下来你会看到波澜般的滚动字幕,请耐心等待,安装过程需要四,五分钟左右。当你看到如下信息,说明基本安装完成:
Please put /home/lin/ns-allinone-2.33/bin:/home/lin/ns-allinone-2.33/tcl8.4.18/unix:/home/lin/ns-allinone-2.33/tk8.4.18/unix
into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph.
IMPORTANT NOTICES:
(1) You MUST put /home/lin/ns-allinone-2.33/otcl-1.13, /home/lin/ns-allinone-2.33/lib,
into your LD_LIBRARY_PATH environment variable.
If it complains about X libraries, add path to your X libraries
into LD_LIBRARY_PATH.
If you are using csh, you can set it like:
setenv LD_LIBRARY_PATH
If you are using sh, you can set it like:
export LD_LIBRARY_PATH=
(2) You MUST put /home/lin/ns-allinone-2.33/tcl8.4.18/library into your TCL_LIBRARY environmental
variable. Otherwise ns/nam will complain during startup.
After these steps, you can now run the ns validation suite with
cd ns-2.33; ./validate
For trouble shooting, please first read ns problems page
http://www.isi.edu/nsnam/ns/ns-problems.html. Also search the ns mailing list archive
for related posts.
5、 配置环境变量
退到ns-allinone-2.33的上一级目录,在终端输入:sudo gedit .bashrc
在文件最后编辑如下信息,并保存:
PATH="$PATH:/home/liu/Program/ns-allinone-2.33/bin:/home/liu/Program/ns-allinone-2.33/tcl8.4.18/unix:/home/liu/Program/ns-allinone-2.33/tk8.4.18/unix"注:把路径中的liu换成你自己的路径
6、验证是否安装成功
另外打开一个终端,输入ns,查看是否进入%,如果已经进入则表示安装成功,运行自带的实例进行测试: /ns-allinone-2.33/ns-2.33/tcl/ex/simple.tcl。
7、可能的问题及解决办法
(1)运行自带的实例进行测试: /ns-allinone-2.33/ns-2.33/tcl/ex/simple.tcl
可能的问题:
系统提示如下,
[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} {
bind Listbox
%W yview scroll [expr {- (%D)}] units
}
bind Li..."
原因:据说是ns2.33,它的nam调用的tk组件和xproto-7.0.13 不兼容导致的(xproto-7.0.13 新添加了 GenericEvent),所以在安装ns2之前要先打上补丁。如果不打上补丁的话,后面调用nam时会报错。
解决方法为:
(1)打补丁tk-8.4-lastevent.patch(补丁下载)
把这个文件移动至ns目录下tk8.4.18下
$cd/home/liu/Program/ns-allinone-2.33/tk8.4.18
$patch –p1
(2)打补丁tk-8.4.18-tkBind.patch(补丁下载)
将文件tk-8.4.18-tkBind.patch移至ns-allinone-2.33目录下,并运行如下命令:
$patch -p0
(3)重新安装ns-allinone-2.33
打上补丁后,再安装ns2.33,输入命令:
$cd ns-allinone-2.33
$./install
安装过程就开始了,这次安装成功后,你就可以享受NS2的强大功能了。