在 Ubuntu18.04 lts 下安装 NS2(含 nam)
前言
NS2(Network Simulator,version 2)是一种面向对象的网络仿真器。在学习NS2的过程中,学会安装NS2也是非常重要的。经过在网上查阅资料和一个下午的折腾,终于在Ubuntu18.04 LTS上安装好NS2并成功运行。以下是我大致的安装步骤。
Step1: 升级更新
sudo apt-get update
sudo apt-get upgrade
Step2: 下载 ns2.35
2.1 方法 1
链接:http://nchc.dl.sourceforge.net/project/nsnam/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz
在网页下载好压缩包后,打开文件所在文件夹(Show in folder)。然后右击鼠标Open in Terminal,把下载的ns-allinone-2.35压缩包解压到目录 /home/ns2
sudo mkdir /home/ns2
sudo tar -zxvf ns-allinone-2.35.tar.gz -C /home/ns2/
2.2 方法 2
用wget下载到 /home/ns2并解压
sudo mkdir /home/ns2
sudo wget -P /home/ns2 http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz
sudo tar -zxvf ns-allinone-2.35.tar.gz
Step3: 安装 ns2 需要的软件包
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev
sudo apt-get install libxmu-dev libxmu-headers
Step4: 安装
cd /home/ns2/ns-allinone-2.35
先别急着./install,先修改一个错误文件
sudo vim ns-2.35/linkstate/ls.h
:137 #跳到第137行
把
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改为:
void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
保存并退出。
接下来要注意的是:ns2只支持g++版本4.4~5.4,所以在这里下载 g++-4.8后进行安装(未尝试其他版本)
sudo apt install g++-4.8
sudo export CC=gcc-4.8 CXX=g++-4.8 && ./install # 这里是在gcc-4.8,g++-4.8的环境下执行安装
如果出现一堆文字You must… 则说明安装成功,接下来设置环境变量。
如果仍然没有成功安装,尝试移除g++后,重新安装g++-4.8后再执行上条安装命令。
Step5: 配置环境变量
sudo gedit /home/你的用户名/.bashrc
用别的编辑器也行,这里用的是gedit。
在最后一行下面,加上
# add path for ns2
export PATH=”$PATH:/home/ns2/ns-allinone-2.35/bin:/home/ns2/ns-allinone-2.35/tcl8.5.10/unix:/home/ns2/ns-allinone-2.35/tk8.5.10/unix
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/ns2/ns-allinone-2.35/otcl-1.14:/home/ns2/ns-allinone-2.35/lib”
export TCL_LIBRARY=”$TCL_LIBRARY:/home/ns2/ns-allinone-2.35/tcl8.5.10/library”
保存即可。
如果是使用zsh的,则在 ~/.zshrc 中添加环境变量,内容如上。
Step6: 验证 ns2 安装
关闭终端,重启终端,输入ns,出现%,则说明ns2安装成功。
Step7: 安装 nam
cd /home/ns2/ns-allinone-2.35/nam-1.15
sudo ./configure
sudo make
sudo make install
命令行输入nam弹出nam console说明nam安装成功。
Step8: 测试 simple.tcl
cd /home/ns2/ns-allinone-2.35/ns-2.35/tcl/ex
ns simple.tcl
安装注意事项
- 记得修改ls.h文件中的错误(添加 "this->")
- 出现"hash"错误时,试试更换到g++-4.8
- 没有配置环境变量,验证ns时会提示无用命令。注意你使用的是bash还是zsh,用的bash则在 /home/你的用户名/.bashrc中添加,用的zsh则在 ~/.zshrc中添加
作为初学者,没有弄懂其中的原理,但是能在Ubuntu18.04 LTS中成功安装NS2,多有不足之处,望多多包涵。