Ubuntu 16.04 安装ns2.35+nam

Ubuntu 16.04 安装ns2.35+nam

摘要

网络仿真需要用到的ns2,看网上还没ubuntu15下的安装教程,并且老帖子中的一些操作有误,自己在折腾两天安装成功后,总结出以下安装步骤

Step1: 更新系统

  • sudo apt-get update #更新源列表
  • sudo apt-get upgrade #更新已经安装的包
  • sudo apt-get dist-upgrade #更新软件,升级系统

Step2:安装ns2需要的几个包

  • sudo apt-get install build-essential
  • sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk
  • sudo apt-get install libxmu-dev libxmu-headers #for nam

Step3:下载安装包,并复制到需要安装的目录

官网下载地址: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 
第137行 
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }

改为:void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }

保存后 sudo ./install #重新安装顺利完成

Step4:配置环境变量

修改当前用户环境变量(对应的文件为’/home/用户名’中的.bashrc,并非’/ns-allinone-2.35’底下的空白.bashrc)

gedit ~/.bashrc

在文件末尾添加 
/# add path for ns2

  • export PATH=”$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”
  • export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/安装文件夹名/ns-allinone-2.35/otcl-1.14:/home/安装文件夹名/ns-allinone-2.35/lib”
  • export TCL_LIBRARY=”$TCL_LIBRARY:/home/安装文件夹名/ns-allinone-2.35/tcl8.5.10/library”

Step5:验证ns2安装

  • 关闭终端,重启终端,输入ns,出现%,说明ns2安装成功

注意:环境变量配错的话,会提示

  • 程序“ns”尚未安装。 您可以使用以下命令安装:
  • sudo apt-get install ns2” 
    请勿通过该命令安装,还是回到Step4修改环境变量吧!

Step6:安装nam

进入nam目录:cd ns-allinone-2.35/nam-1.15 
进入后sudo ./configure,然后sudo make

  • 注意,此处会出错 
    提示为“installation of tcl seems incomplete or can’t be found automatically”忘记截图了
  • 解决方法: 
    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安装成功。 
Ubuntu 16.04 安装ns2.35+nam 
注意:如果通过“sudo apt-get install nam”安装的nam,执行nam命令会报异常 
“段错误,核心文件已转储” 
遇到该问题的网友可以“sudo apt-get remove –purge nam”卸载nam及其配置后按Step6安装。

Step7:测试simple.tcl

cd ns-allinone-2.35/ns-2.35/tcl/ex/ 
ns simple.tcl

显示下图则全部安装成功! 
Ubuntu 16.04 安装ns2.35+nam

致谢

本文参考了下面两篇网文:文献1文献2,在此向作者表示感谢! 
欢迎大家指正!