安装Ubuntu 11.04操作系统只是简单的一步,ns2的安装才是令人头大的关键。
按照网上的指示,似乎安装ns2很简单,只要解压、安装就能成功,可事实是,由于我下载的版本很高,很多文件并没有相应的更新,在安装过程中,要手动修改文件。
1、更新Ubuntu系统文件,虽然系统是最新版本的,但是不代表里面的文件都是最新的,需要更新。
打开Ubuntu的终端,里面依次输入命令
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
即可。这里首次采用sudo时,需要用户密码,也就是安装ubuntu时设置的。
2、为了更好的安装ns2,还需要进行一些package的安装,打开终端,输入
sudo apt-get install build-essential
sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev
sudo apt-get install libxmu-dev libxmu-headers
3、在http://sourceforge.net/projects/nsnam/files/上可以下载到ns-allinone-2.34.tar.gz,版本,将其放在/home/yourfile/下,这里yourfile是用户自己定义的文件名,在终端中输入
tar xvfz ns-allinone-2.34.tar.gz
cd /home/yourfile/ns-allinone-2.34
./install
4、上述安装会出现两个问题,导致ns2安装不能成功,这也是以前的版本为出现过的。这两个问题都需要手动修改一些文件。
问题1、上述安装结束后,出现tcl8.4.18 make failed! Exiting!搜索网上解决方案如下,
cd/home/yourfile/ns-allinone-2.34
cd otcl-1.13
sudo geditconfigure.in
在弹出的窗口文件中的77行处的SHLIB_LD="ld-shared" 改为 SHLIB_LD="gcc-shared"后保存退出。
sudo geditconfigure
在弹出的窗口文件中的6304行处的SHLIB_LD="ld-shared" 改为SHLIB_LD="gcc-shared" 后保存退出。
问题2、出现mobile/nakagami.cc:183:73: error: cannot callconstructor mobile/nakagami.cc:185:67: error: for a function-style cast, remove the redundant ‘::GammaRandomVariable’
make: *** [mobile/nakagami.o] 等,
cd/home/yourfile/ns-allinone-2.34
cd ns-2.34
sudo gedittools 在弹出的窗口文件中找到219行,删除 ::GammaRandomVariable
sudo geditmobile 在弹出的窗口文件中找到183行,删除 ::ErlangRandomVariable,找到185行,删除 ::GammaRandomVariable
5、至此,重新运行./install应该能顺利安装ns2,此时需呀地环境变量进行路径的设置
sudo gedit .bashrc
在弹出的窗口文件最后输入
exportPATH=$PATH:/home/yourfile/ns-allinone-2.34/bin:/home/yourfile/ns-allinone-2.34/tcl8.4.18/unix:/home/yourfile/ns-allinone-2.34/tk8.4.18/unix
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yourfile/ns-allinone-2.34/otcl-1.13:/home/yourfile/ns-allinone-2.34/lib
exportTCL_LIBRARY=$TCL_LIBRARY:/home/yourfile/ns-alllinone-2.34/tcl8.4.18/library
6、关闭Ubuntu的终端,并重新打开,输入ns,命令提示,ns2尚未安装,并提示使用命令
sudo apt-get install ns2即可。再次输入ns,出现%,代表你已经安装成功了
7.安装nam等辅助软件 命令 sudo apt-get install nam
8.卸载软件的命令为 sudo apt-get autoremove nam
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。