结合网上其他人的一些帖子经验和自己的真实操作来搭建这个仿真实验,做了好久才完成,以下借用以下别人帖子写的一些步骤~
1. 更新系统
sudo apt-get update #更新源列表
sudo apt-get upgrade #更新已经安装的包
sudo apt-get dist-upgrade #更新软件,升级系统
2. 安装ns2需要的几个包
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcland tk
sudo apt-get install libxmu-dev libxmu-headers #for nam
3. 下载安装包,并复制到需要安装的目录
官网下载地址:http://www.isi.edu/nsnam/ns/,这里下载allinone
tar xvfz ns-allinone-2.35.tar.gz
cd ns-allinone-2.35
sudo ./install #进行安装
第一次安装报错:
linkstate/ls.h:137:20: note: use ‘this->erase’ instead
make: * [linkstate/ls.o] Error 1
Ns make failed!
修改ls文件:ns-2.35/linkstate/ls.h
即cd ns-2.35/linkstate,然后gedit ls.h
第137行
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改为:void eraseAll() {this->erase(baseMap::begin(), baseMap::end()); }
保存后 sudo ./install #重新安装顺利完成
安装过程需要一会。安装正确的话应该可以看到:
4. 配置环境变量
修改当前用户环境变量(对应的文件为’/home/用户名’中的.bashrc,并非’/ns-allinone-2.35’底下的空白.bashrc)
输入命令:gedit ~/.bashrc
在文件末尾添加
/# add path for ns2
exportPATH="$PATH:/home/用户目录/安装文件夹/ns-allinone-2.35/bin:/home/安装文件夹名/ns-allinone-2.35/tcl8.5.10/unix:/home/用户目录/安装文件夹名/ns-allinone-2.35/tk8.5.10/unix":
exportLD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/用户目录/安装文件夹名/ns-allinone-2.35/otcl-1.14:/home/用户目录/安装文件夹名/ns-allinone-2.35/lib":
exportTCL_LIBRARY="$TCL_LIBRARY:/home/用户目录/安装文件夹名/ns-allinone-2.35/tcl8.5.10/library"
//注意两个环境变量路径之间要用冒号:隔开
5. 验证ns2安装
关闭终端,重启终端,输入ns,出现%,说明ns2安装成功,如下图:
按CRL+C停止
注意:环境变量配错的话,会提示程序“ns”尚未安装。 您可以使用以下命令安装:
sudo apt-get install ns2”
请勿通过该命令安装,还是回到第4步修改环境变量吧!
6. 安装nam
进入nam目录:cdns-allinone-2.35/nam-1.15
进入后sudo ./configure,然后sudomake
注意,此处会出错
提示为“installation of tcl seems incomplete or can’t be foundautomatically”,如下图:
解决方法:
sudo ./configure--with-tcl=/home/用户目录/文件存放目录/ns-allinone-2.35/tcl8.5.10 --with-tcl-ver=8.5.10 --with-tk=/home/用户目录/文件存放目录/ns-allinone-2.35/tk8.5.10 --with-tk-ver=8.5.10
最后sudo make install
命令行输入nam弹出nam console说明nam安装成功。
注意:如果通过“sudo apt-get install nam”安装的nam,执行nam命令会报异常
“段错误,核心文件已转储” ,如下图:
遇到该问题的网友可以“sudo apt-get remove –purge nam”卸载nam及其配置后按第6步安装。
7. 测试example.tcl和simple.tcl
中端输入命令:cd ns-allinone-2.35/ns-2.35/tcl/ex/
ns example.tcl,结果显示如下(如果出现了数据,证明ns2运行正常):
接着输入:ns simple.tcl,结果如下:
说明tcl没有正确安装,有可能是环境变量没有修改好,比如路径不对或者符号不是英文的。
显示下图则全部安装成功!
很可惜我这里是通过图形界面打开的,并不是直接通过命令打开,在网上看了许多其他人的安这步骤做了很久都不行,总会报错说段存储错误之类的,如果有人可以通过命令可以打开欢迎留言!
致谢原文:https://my.oschina.net/u/2523942/blog/534613