网络|Ubuntu 17.10 安装NS图文教程

注意:
不要使用sudo apt-get install ns2
不要使用sudo apt-get install nam
1 NS2 简介 NS2是指 Network Simulator version 2,NS(Network Simulator) 是一种针对网络技术的源代码免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术的所有方面。所以,NS成了目前学术界广泛使用的一种网络模拟软件。此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。因此,目前在学术界和教育界,有大量的人正在使用或试图使用NS。
2 NS2 安装 ns版本有很多,这里我们选择ns2.35版本。下载地址:https://www.isi.edu/nsnam/ns/ns-build.html 最好复制该链接粘贴到新页面去打开,直接点击可能打不开。
1.下载NS-2
找到如下页面,点击第一个most rencent release链接
ns-2
Download source:

  • most recent release (ns-2.35 released Nov 4 2011)
  • daily snapshot,
  • anonymous cvs (module "ns-2").
There may be known problems with the current version of ns; please check the ns installation problems web page for patches.
网络|Ubuntu 17.10 安装NS图文教程
文章图片

2. 更新系统安装包
1) sudo apt-getupdate#更新源列表(不要改动sources.list文件)
2) sudo apt-get upgrade#更新已经安装的包
3) sudo apt-get dist-upgrade#更新软件,升级系统
3.安装NS2运行时需要的三个依赖包
1) sudo apt-get install build-essential #(不要更改最初sources.list的源地址)
2) sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #(注意版本)
安装这个依赖包后,在以后调试涉及./configure时会提示找不到tcl的路径,解决方法是 ./configure –with-tcl-ver=8.5
3) sudo apt-get install libxmu-dev libxmu-headers#for nam
4. 降级Ubuntu中gcc/g++的版本,需要进入/usr/bin目录下进行此操作
1)通过gcc -v ,g++ -v 来查看当前gcc和g++版本。如下图所示,因为我已经降低国系统中的gcc和g++版本,所以系统中当前版本为gcc4.8.5和g++4.8.5(原来是7.8版本)。
网络|Ubuntu 17.10 安装NS图文教程
文章图片

2)使用如下命令降低gcc,g++版本
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
3)安装完毕之后在/usr/bin目录下输入
ls -l gcc*#可以查看到当前的gcc链接(第一行位置),可以发现版本较高,于是我们需要修改为较低的
sudo mv gcc gcc.bak
sudo ln -s gcc-4.8 gcc
修改完gcc接着修改g++
ls -l gcc*#同样可以查看到当前的g++链接是较高版本,需要将其改为较低的
sudo mv g++ g++.bak
【网络|Ubuntu 17.10 安装NS图文教程】sudo ln -s g++-4.8 g++
网络|Ubuntu 17.10 安装NS图文教程
文章图片

4)使用gcc -v&&g++ -v查看gcc和g++版本号
这时,应该可以看到如下图所示的gcc和g++版本号
网络|Ubuntu 17.10 安装NS图文教程
文章图片

4. 将下载好的ns-2.35放到/home/(用户名目录)/下(我设置的目录是/home/lwt/simulation/)
1)tar xvfz ns-allinone-2.35.tar.gz#解压文件到当前目录
2)cd ns-allinone-2.35 #进入到解压文件目录下
5. 打开ns-alinone-2.35/ns-2.35/linkstate/ls.h 文件
1)找到第137行(可以使用vim编辑器打开,如果打开文件后不显示行号可以使用:set number命令显示行号)

将 void eraseAll() { erase(baseMap::begin(), baseMap::end()); }改为:void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }保存(:wq)后退出

2)进入ns-alinone-2.35目录下(在上一步基础上使用两次cd ..命令)
./install #进行安装ns-2.35
6. 配置环境变量
1)gedit ~/.bashrc 命令编辑.bashrc文件,将下面的语句直接复制进去(/home/用户名/ 路径需要使用你自己解压的ns-2.35路径。ubuntu17.10 gedit命令可能不能用)

export NS_HOME=/home/用户名/ns-allinone-2.35 export PATH=$PATH:$NS_HOME/bin:$NS_HOME/tcl8.5.10/unix:$NS_HOME/tk8.5.10/unix export LD_LIBRARY_PATH=$NS_HOME/otcl-1.14:$NS_HOME/lib export TCL_LIBRARY=$NS_HOME/tcl8.5.10/library

如图所示
网络|Ubuntu 17.10 安装NS图文教程
文章图片

7. 打开新终端(ctrl-alt-t)
1) cd /home/用户名/ns-allinone-2.35/ns-2.35/tcl/ex/
2) ns simple.tcl
网络|Ubuntu 17.10 安装NS图文教程
文章图片

出现如下页面,则ns正确安装。
网络|Ubuntu 17.10 安装NS图文教程
文章图片

8. 若以上步骤失败,则尝试如下方法
使用第二种设置环境
export NS_HOME=/home/用户名/ns-allinone-2.35
PATH=$PATH:$NS_HOME/bin:$NS_HOME/tcl8.5.10/unix:$NS_HOME/tk8.5.10/unix
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NS_HOME/otcl-1.14:$NS_HOME/lib
TCL_LIBRARY=$TCL_LIBRARY:$NS_HOME/tcl8.5.10/library

1)gedit~/.bashrc#换一个环境变量方案,重复上面步骤
2)cd ns-allinone-2.35/nam-1.15#进入nam目录
3)./configure --with-tcl-ver=8.5#重新配置
4) sudomake#重新编译源码
5)sudomake install#重新安装
命令行输入nam弹出nam console说明nam安装成功。
网络|Ubuntu 17.10 安装NS图文教程
文章图片

步骤九: 重复步骤七

    推荐阅读