ns2.34的学习--安装总结

 

装了3 个下午加4 个晚上,总计20 多个小时,终于把ns2.34 装好了,本来打算直接用Cygwin 装在windows 下面的,但在尝试了重新安装3 次并试了所有网上仅有的方法后放弃,现在是装在Ubuntu8.10 系统下面,运作良好。

现在将安装过程中的问题总结一下,以纪念我逝去的20 多个小时。

 

安装 Cygwin

windows 下面,首先安装Cygwin, 我用的是Cygwin2.5 ,安装步骤按提示一步步下来,唯一要注意的是选择要安装的软件包,一定要记得选上gcc, gcc-g++, gnuplot, make, patch, perl, tar 和X 开头的所有都勾上,选的时候点右上角的view ,使它旁边的状态显示为FULL ,然后就可以看到按字母顺序排列的package 列表,如果相应的是”skip” 则点击”skip”, 使其变成一串数字,如”4.2.0-2” 。然后Cygwin 就开始安装了,我用的是本地,大概两个小时不到点安装完成,桌面出现Cygwin 图标,点击即可运行。

 

安装 ns2.34

然后安装提前下载完成的ns2.34 。

step1 :将ns-allinone-2.34.tar.gz 压缩包拷到Cygwin 目录下,我当时拷在home 目录下;

step2 :打开cygwin ,用tar -vxzf /opt/ns-allinone-2.34.tar.gz 解压,解压3 分钟左右即完成。

Step3 :进入ns-allinone-2.34 目录,运行./install ,大概要一个小时,甚至更久。

Step4 :修改环境变量,打开/home/hy 下的.bashrc 文件,在最后面加入

exportPATH=$PATH:/home/hy/ns-allinone-2.34/bin:/home/hy/ns-allinone-2.34/tcl8.4.18/unix:/home/hy/ns-allinone-2.34/tk8.4.18/unix
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hy/ns-allinone-2.34/otcl-1.13:/home/hy/ns-allinone-2.34/lib

export TCL_LIBRARY=$TCL_LIBRARY:/home/hy/ns-allinone-2.34/tcl8.4.18/library

step5 :测试输入ns ,这个时候提示符从# 变成了% 大致上表示安装成功。

我没有成功,我想原因可能是环境变量修改后没有使其生效,后来在ubuntu 下修改环境变量没有重启也是不行的。

 

遇到的问题:

1 、有一个网友说需要修改.bashrc 文件,除了增加系统所要求的环境变量外,还需要用下面这行设置代替原文件中的最后一行,否则修改就是无效的。

# function settitle() { echo -n "^[]2;$@^G^[]1;$@^G"; }

{ echo -ne "/e]2;$@/a/e]1;$@/a"; }

   我试过了,无效。

2 、bash: $'/r': command not found

网上说原因是cygwin 脚本是用UNIX 的   EOL   /n".  而自己的脚本用了DOS 的 EOL , "/n/r".

解决办法是对/home/hy 下的 .inputrc 、.bashrc 、.bash_profile 和/etc 下的 bash.bashrc 、运行   dos2unix 就行了。我试了,无效。

3 、NS2 安装后如果始终不出ns %

网上说进入ns-2.34 的目录下运行 ./configure    make 就可以了,我运行后有错。

 

以上所有无效的办法可能最终还是因为我没有使.bashrc 文件生效,ns2 的安装RP 很重要,对于我无效的方法也许可以解决其他人的问题,毕竟也是人们试成功过的方法。

 

网上搜到的其他问题及解答:

1 、 运行 ns examples2.tcl 时提示" no such file or directory"

如果是找不到 examples2.tcl 那就是你打 cd /home/hct/ns-allinone-2.30/ns-2.30/ns-tutorial/examples 的时候出了错;ns-allinone-2.30 以上版本是没有例子的可以从低版本上下如2.8 ;如果是找不到ns ,那就是环境变量没设置好

 

2 、 运行 ns examples2.tcl 时提示“nam:   no such file or directory ”

看看你的 /home/hct/ns-allinone-2.28/nam-1.11 目录下有没有 nam.exe 文件,有的话就是你的环境变量设置错了,注意要把 nam-1.11 这个目录加到PATH 中

    如果没有nam.exe ,那就是编译nam 时出错了。运行 gcc -dumpversion 看看你的gcc 版本,如果是3.4.x ,那就好办了。找到 nam-1.11/agent.h ,把它的第73 行中的NULL 改成0, 然后回到nam-1.11 目录,运行 ./configure 然后运行 make ,等运行完毕,再试试 ns example2.tcl 就应该没问题了

    如果gcc 版本不是3.4.x ,那就不知道是什么问题了,不过可以肯定是编译出了错,所以换个nam 版本试试吧。

3 、用make 命令生成nam 。步骤:首先进入目录/home/hy/ns-allinone-2.34/nam-1.14 ,然后运行命令(./configure && make && make install )后会在/home/hy/ns-allinone-2.28/nam-1.11 目录下生成一个nam.exe 文件,把nam.exe 文件拷贝到/home/hy/ns-allinone-2.34/bin 目录下。

注:上述命令执行中的错误不影响nam.exe 文件的生成结果,可以不理会。

NS 主窗口/home/hy/ns-allinone-2.28/ns-2.28 目录下输入startxwin.bat 回车后生成一个小窗口。(实际上在NS 主窗口的任何目录下运行startxwin.bat 命令都会生成小窗口。)在小窗口中输入命令(cd ns-allinone-2.34/ns-2.34/ns-tutorial/examples )进入相应目录。运行命令(ns example2.tcl )会进行模拟生成一个*.nam 文件,nam 根据这个文件显示动画模拟。

 

具体步骤大家可以参考这位朋友的博客上的安装教程:http://blog.chinaunix.net/u/21684/showart_1071498.html 需要注意的是,一定要将cygwin 安装在PC 机的管理员(Administrator )帐户中,而且这个帐户名称中是不能有空格的,否则将导致在cygwin 环境下安装ns-2 失败。

       

根据网上问题的解决办法试过后依旧不行,又重新卸载安装了3 次后,决定在我可爱的小电脑上再安装个ubuntu 系统,然后在ubuntu 下安装ns2 ,导师也比较支持这个决定,因为在windows 下运行ns2 会出现很多无法预料的问题,毕竟ns2 还是基于linux 系统发展起来的。

 


Ubuntu8.10 的安装

我是安装了双系统的,所以先在windows 下清出了10G 的空间,磁盘整理步骤:我的电脑à 管理à 存储à 磁盘管理à 右下框中选中您要清空的盘,右键à 删除逻辑驱动器à 空出盘即可。

如果是安装双系统,则在ubuntu 安装启动时选择保持原有内容,我当时记得是选了第一项。然后按步骤完成即可。参考http://www.linuxdiyf.com/viewarticle.php?id=114323 。分区的时候还要注意下。

分区的一般方式:1 、/ 文件系统和一个swap 分区   优点:可以最大限度的利用硬盘空间

                                              缺点:重装系统时要先备份/home

                2 、/ 文件系统,/home 文件系统和一个swap 分区

                3 、可以在以上的基础上再多个/boot 系统,/var 文件系统等

 

NS2.34 的安装

参考http://jiangnanxiyu.blogbus.com/logs/36840195.html  

1. 下载ns-allinone-2.34.tar.gz

2. 把ns-allinone-2.34.tar.gz 放到 /root 目录下

3. 安装NS2     

  进入终端:输入sudo apt-get install build-essential                 (for gcc and some essential)
                    sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev          (for tcl and tk)

                    sudo apt-get install libxmu-dev    (for nam) 

前面3 条命令因为我当时软件源没有添加另外的,所以比较慢,大概花了3 个多小时,所以建议大家先添加软件源,我装了上海交大的和台湾的,比较推荐台湾的,比较快。

   tar xvfz ns-allinone-2.34.tar.gz( 解压 ns-allinone-2.34.tar.gz)

   cd ns-allinone-2.34.tar.gz  进入该目录

     ./install    ( 安装 ns-allinone-2.34) 这个估计要一个小时吧,我当时输完命令后出去吃了个饭散了个步。

4. 等一会儿,你将会看到如下信息!提示你配置环境变量

Ns-allinone package has been installed successfully.
Here are the installation places:
tcl8.4.18: /root/ns-allinone-2.34/{binincludelib}
tk8.4.18: /root/ns-allinone-2.34/{binincludelib}
otcl: /root/ns-allinone-2.34/otcl-1.13
tclcl: /root/ns-allinone-2.34/tclcl-1.19
ns: /root/ns-allinone-2.34/ns-2.34/ns
nam: /root/ns-allinone-2.34/nam-1.13/nam
xgraph: /root/ns-allinone-2.34/xgraph-12.1
gt-itm: /root/ns-allinone-2.34/itm edriver sgb2alt sgb2ns sgb2comns sgb2hierns

----------------------------------------------------------------------------------

Please put /root/ns-allinone-2.34/bin:/root/ns-allinone2.34/tcl8.4.18/unix:/home/tnt/ns-allinone-2.34/tk8.4.18/unix
into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph.

IMPORTANT NOTICES:

(1) You MUST put /root/ns-allinone-2.34/otcl-1.13 /root/ns-allinone-2.34/lib
into your LD_LIBRARY_PATH environment variable.
If it complains about X libraries add path to your X libraries
into LD_LIBRARY_PATH.
If you are using csh you can set it like:
setenv LD_LIBRARY_PATH 
If you are using sh you can set it like:
export LD_LIBRARY_PATH=

(2) You MUST put /root/ns-allinone-2.34/tcl8.4.18/library into your TCL_LIBRARY environmental variable. Otherwise ns/nam will complain during startup.


After these steps you can now run the ns validation suite with
cd ns-2.34; ./validate

For trouble shooting please first read ns problems page
http://www.isi.edu/nsnam/ns/ns-problems.html . Also search the ns mailing list archive
for related posts.

5.  配置环境变量       sudo gedit .bashrc

在文件最后编辑如下信息

export PATH=$PATH:/root/ns-allinone-2.34/bin:/root/ns-allinone-2.34/tcl8.4.18/unix:/root/ns-allinone-2.34/tk8.4.18/unix

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/ns-allinone-2.34/otcl-1.13:/root/ns-allinone-2.34/lib

export TCL_LIBRARY=$TCL_LIBRARY:/root/ns-allinone-2.34/tcl8.4.18/library

 

 

6.    log-out Ubuntu 以便重载环境变量,这个很重要,我当时因为没有注销重启,最后ns 命令不能运行,白白浪费了一个多小时把这几步又重新在重启后进行了一遍。

验证NS2

  进入终端输入cd /ns-allinone-2.34/ns-2.34

                ./validate (这要花一段时间,请耐心等待,这里我等了约一个小时)。

验证结束你将会看到如下信息:

These messages are NOT errors and can be ignored:
warning: using backward compatibility mode
This test is not implemented in backward compatibility mode

validate overall report: all tests passed

7. sudo apt-get install gawk               (for gawk) ,这个比较快,一分钟

8. sudo apt-get install gnuplot           (for gnuplot) 这个5 分钟内可以完成

9. 结束

在终端中输入ns ,若出现% 则安装成功。

也可以运行自带的实例进行测试: ns /ns-allinone-2.34/ns-2.34/tcl/ex/simple.tcl 

可以看到nam 模拟窗口  。

 

NS2.34 安装终于完成了,接下来就是好好学习运用它了,路还长,慢慢走。

还有,发现同路的人很多啊,一起努力哈!

 

 后续:

又换了ubuntu9.10系统,执行./install后出现下面的错误


gcc -c -g -O2 -DNDEBUG -DUSE_SHM -fpic -I. -I/home/ns-allinone-2.34/include -I/home/ns-allinone-2.34/include -I/home/ns-allinone-2.34/include -I/include  otcl.c
ld -shared -o libotcl.so otcl.o
otcl.o: In function `OTclDispatch':
/home/ns-allinone-2.34/otcl-1.13/otcl.c:495: undefined reference to `__stack_chk_fail_local'
otcl.o: In function `Otcl_Init':
/home/ns-allinone-2.34/otcl-1.13/otcl.c:2284: undefined reference to `__stack_chk_fail_local'
ld: libotcl.so: hidden symbol `__stack_chk_fail_local' isn't defined
ld: final link failed: Nonrepresentable section on output
make: *** [libotcl.so] Error 1
otcl-1.13 make failed! Exiting ...

 

根据前人的指导,搞定问题,收藏解决方法如下:

 

进入otcl-1.13目录,找到configure.in.
将77行,
SHLIB_LD="ld -shared"
改为
SHLIB_LD="gcc -shared"
同时修改configure 第6304行
SHLIB_LD="ld -shared"
改为
SHLIB_LD="gcc -shared"
重新./install

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值