NS2.31装好已经很久了,也遇到了不少问题,一直想整理成文字,因为没有开博客所以没有放上来,今天趁着小休把安装过程中遇到的问题整理一下: 1.安装 VirtualBox: https://www./wiki/Downloads (其他如VMWare也能装,看大家的喜好了) 2.下载并安装Ubuntu10.4: http://www./ (最新的 Ubuntu 12.04 LTS已经出来了,不过对于NS2的安装来说,低版本最到的问题会少一些,主要是编译器方面的问题,所以建议大家不要一味的追求高版本,对NS2也是如此。想想上个世纪我们的286、386还没充分发挥其功效,486、586。。。。。。甚至于现在的多核CPU就不断地冲击着人们的大脑,让人无从选择,硬件、软件发展得很快,有时候不如选择经典的) 3.安装NS2前,需要要更新部分软件: 在安装NS2之前,一些必要的库、头文件需要手动安装,可在终端下以超级用户模式来安装(CP并执行如下命令即可): sudo apt-get install build-essential tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev libxmu-dev libxmu-headers 一般情况下,在Ubuntu10.4下不要再单独执行以下命令来安装编译器: sudo apt-get install gcc-4.4 sudo apt-get install g++-4.4 如果编译不了,或提出编译器版本不匹配,再执行上述命令来单独安装编译器! 4.下载 NS2.3x: http://nsnam./nsnam/index.php/Main_Page 目前该页面提供从2.31至2.35的下载链接 5.拷贝ns-allinone-2.3x.tar.gz至/home/xxxx (xxx为你的用户主目录)下,执行如下命令解压缩: tar -zxvf nsns-allinone-2.31.tar.gz 6.修改部分文件内容,并执行安装: (1) 如果gcc的版本大于4.0("gcc4.0版本以前是用ld-share来生成共享库的,但是到了4.0以上的版本,这个命令改为了gcc-share"),则对ns-allinone-2.34 /otcl-1.13下的两个文件进行修改: (a)sudo gedit configure.in 把77行处的 SHLIB_LD="ld-shared" 改为 SHLIB_LD="gcc-shared" 保存退出,然后 (b)sudo gedit configure 把6304行(Ctrl+F)的 SHLIB_LD="ld-shared" 改为 SHLIB_LD="gcc-shared" (2)另一个要修改的Bug是有关NAM运行错误,如果不修改,Nam运行时会遇到以下错误: [code omitted because of length] : no event type or button # or keysym while executing "bind Listbox <MouseWheel> { %W yview scroll [expr {- (%D / 120) * 4}] units }" invoked from within "if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { bind Listbox <MouseWheel> { %W yview scroll [expr {- (%D)}] units } bind Li..." 解决方案: 在tk-8.4.*/generic/tkBind.c的第588行添加: #ifdef GenericEvent /* GenericEvent */ 0, #endif 经过上述两处地方的修正,就可以执行以命令进行NS2的配置与编译了: ./install 搞定,收尾! 最后对主目录下的.bashrc文件进行相关的目录变量的设置: (1)运行 gedit ~/.bashrc (2)将如下信息加入.bashrc文件中,保存退出: export PATH=/usr/bin:$PATH:/home/beijibing/ns-allinone-2.35/bin:/home/beijibing/ns-allinone-2.35/tcl8.5.10/unix:/home/beijibing/ns-allinone-2.35/tk8.5.10/unix:ns-allinone-2.29/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/beijibing/ns-allinone-2.35/otcl-1.14:/home/beijibing/ns-allinone-2.35/lib export TCL_LIBRARY=$TCL_LIBRARY:/home/beijibing/ns-allinone-2.35/tcl8.5.10/library (3)运行source .bashrc命令 或 关闭并重新打开一个终端,即可以在终端下运行NS2了。 也可以运行ns2自带的例子程序: cd ~/ns-allinone-2.35/ns-2.35/tcl/ex 然后:ns simple.tcl 便可以看到例子程序的输出了。
以下全部无关紧要,有空玩玩也可以 13.现在你可以log-out Ubuntu以便重载环境变量。 14.验证NS2。进入终端输入cd /ns-allinone-2.33/ns-2.33,./validate(这可能会花一段时间)。 验证结束你将会看到如下信息: These messages are NOT errors and can be ignored: validate overall report: all tests passed 15. sudo apt-get install gawk (for gawk) 16. sudo apt-get install gnuplot (for gnuplot) 17.结束,OK。 补充修正: 在Ubuntu11.10/10.04下安裝ns2.34是可行的,步骤如下: 1. 除了按上面说明进行一样的修正外,还有需要修正以下一些内容: a)修改ns-2.34/tools/中的ranvar.cc第219行, 将GammaRandomVariable::GammaRandomVariable改为GammaRandomVariable b) 修改ns-2.34/mobile/中的nakagami.cc: 第183行, 將ErlangRandomVariable::ErlangRandomVariable 改为ErlangRandomVariable; 第185行GammaRandomVariable::GammaRandomVariable改为GammaRandomVariable c)修改ns-2.34/mac/中的mac-802_11Ext.h, 加入#include <cstddef> 可选 2.修改 ~ns-2.34/tcl8.X.x/unix/Makefile.in and in line number 270 change @CC@ to @CC@ –V 4.4 3. ./install P.S. 現在2.35已經沒這麼麻煩了, 不需要修改otcl-1.13/中的configure, configure.in 最后附上几个有用的博客与网站: 1. http://140.116.72.80/~smallko/ns2/ns2.htm 柯志亨老师的网站,有大量的NS2学习资料,有时上不去。 2. http://nsnam./nsnam/index.php/Contributed_Code 其中有不少有用的Code,值得深入学习。 3. http://linlansworknote./ 一个不错的个人博客,有不少实验举例与分析 4. http://bbs.sciencenet.cn/home.php?mod=space&uid=281551&do=blog&id=390046 教你如何将Nam输出保存成动画图片 最近换了个环境:NetBeans7.x+NetBeansTcl plugin+Ubuntu10.04可以完美实现编译/运行/调试/代码辅助等功能,彻底摆脱了无GUI环境的NS2编辑/编译/运行环境,一个字:强! |
|