windows+cygwin+ns2的安装过程及相关问题

       cygwin,是一个运行在windows环境下的模拟linux底层的模拟器,可以在上面实现一些基本的linux操作和编程。但归根结底还是针对windowsAPI进行模拟,不可能达到跟linux相同,所以要研究linux编程最好还是直接用linux系统。

 

      NS2,是一个网络仿真器,可以用来仿真网络等,是当前非常有用和时髦的仿真器。最近,刚好要用到它,为了装一个NS2,大概需要100M左右,实在没有必要专门去装一个linux环境,因此,我最终采用了windows+cygwin+NS2的方法来安装使用ns2

 

       安装过程异常艰辛,从前天上午开始,这几天不断熬夜,到今天才算装好。其实也怪自己当初没有调研充分。

       最开始采用的安装方法是严格按照http://140.116.72.80/~smallko/ns2/setup_en.htm来安装的,结果可能是XP虚拟机本身的问题,没装好;然后重新安装虚拟机,接着采用这个方法进行install ns-2.27NS.exe都没生成;之后换了一个XP系统,然后安装新版本的cygwin,和较新版本的2.28,成功生成NS.exe,可是startxwin.bat未生成不说,直接点击startxwin.exe,报错说找不到xwin.exe的程序入口,说是少了一个lib文件,然后我下了这个文件放进去,还是不行,放弃;之后重新安装更新版本的NS,总算生成了startxwin.bat,并且能够打开xwin.exe了,可是运行example时,又报错ns无法找到,我把ns.exe复制到bin里面,并且配好了.bashrc文件,又出现新的错误:nam的问题。

       下面对上面的问题做一下总结:

       p1:运行 startxwin.bat 时提示“No Such File or Directory”
       s:
可能是没有安装X-Startup-Scripts,重新运行setup.exe,然后选择安装就行了

       也可能是环境变量没有设置好,按上面的设置再检查一遍,注意要把 administrator 改成你相应的名字
     
另外,应该运行 startxwin.bat ,不能只打 startxwin


       p2: 运行 ns examples2.tcl 时提示" no such file or directory"
       s:
如果是找到 examples2.tcl 那就是你打 cd /home/adminstrator/ns-allinone-2.28/ns-2.28/ns-tutorial/examples 的时候出了错,或者环境变量没设置好;
      
如果是找不到ns,说明编译没成功,需要查找其他原因,有可能是gcc版本与ns不兼容等,或者包没选全


       p3:运行 ns examples2.tcl 时提示“nam:  no such file or directory”
       s:
看看你的 /home/administrator/ns-allinone-2.**/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 && make install,等运行完毕,再试试 ns example2.tcl 就应该没问题了
     
如果gcc版本不是3.4.x,那就不知道是什么问题了,不过可以肯定是编译出了错,所以换个nam版本试试吧


       p4:
编译nam时出错:can't find X includes
       s:
安装libXt-devel


       p5:编译nam时出错:x11/xmu/winutil.h: No such file or directory

       s:S: 安装libXmu-devel


       p6:XWIN.exe
能够打开,执行ns example2.tcl时报错,nam的问题

       s:原因是Cygwin下编译的namXgraph不兼容导致的,在实际的Linux很少碰到这个问题,后面会介绍解决方法。


       下面讲一下安装成功的版本吧:

       cygwin,我用的是最新版本的,直接从官网上下载,然后采用类似于上面给出的网址提供的方法进行安装,这里就不介绍了。主要要注意的是,网上一般列出了两种类型的包XFree86Xorg-X11的包。其实这两个包都已经过时了,都是obsolete的包了。安装Cygwin在选择包的时候,一定要把hide obsolete package的勾给去掉,不然你是看不到它们的。另外XFree86的包太旧了,已经被删除了,你其实是下不到的。如果你想安装XFree86只能找早期版本的cygwin了。在高版本的ns2下其实推荐使用的还是Xorg-X11的包。这里有必要说明一下其实ns2配置安装的时候是还是只支持过期的XFree86Xorg-X11的包,没有对Cygwin新的X11包做支持。所以可能有朋友安装ns2出现找不到xorg-x11-bin问题的时候,其实就是你没有安装Xorg-X11包的的缘故,必须在安装时候去掉hide obsolete package的勾才能安装。

       需要安装的包包括:

       gcc
       gcc-g++
       gnuplot
       make
       patch
       perl
       tar
       X-startup-scripts
       xorg-x11-base
       xorg-x11-bin
       xorg-x11-devel
       xorg-x11-bin-dlls
       xorg-x11-bin-lndir
       xorg-x11-etc
       xorg-x11-fenc
       xorg-x11-fnts
       xorg-x11-libs-data
       xorg-x11-xwin

   

       libxt-devel
       libXmu-devel

       注意:后面两个包也是必须的,作用是作为nam 的依赖包。

 

       安装完cygwin后,要先打开cygwin.bat,在home目录下生成对应你的用户名的文件夹。我的是产生了Administratror 这样一个文件夹。

       NS2.28。这个版本可靠性相对较好,但这个版本的nam存在问题,我是借了http://blog.ednchina.com/beats/348738/message.aspx这个博客提供的两种解决方案。


       第一种:安装ns-allinone-2.28,然后安装成功后,下载对应的nam-1.0a11a-win32.exe,然后将其重命名为nam.exe后,放到ns-allinone-2.28/ns-2.28/bin目录下。

 

       第二种:安装current release 2.34,该博客中作者说用这个不会存在问题。但我安装时,在安装过程中总会报错,于是我果断放弃这种方法,采用了第一种方法。

 

       .bashrc文件的编辑也是一个问题,最好采用UE来进行编辑,毕竟是unix环境下的格式,只需要注意安装后的ns-allinone-2.28的里面的包的版本就好,添加代码如下:

export NS_HOME=`pwd`/ns-allinone-2.28 export PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/otcl-1.9:$NS_HOME/lib:$LD_LIBRARY_PATH export TCL_LIBRARY=$NS_HOME/tcl8.4.5/library 

 

       总结:最近装这个东东颇费周折,宿舍流量用完了,只好去实验室。。各种纠结,安装一次要花上三四个小时(机子太破)。不管咋样,总算搞定啦,马上放假了,算是了解了一桩心事。回去好好学习一下NS的语言(貌似挺难的样子。。),路漫漫其修远兮,吾将上下而求索!。。

 

你可能感兴趣的:(windows,linux,虚拟机,gcc,Path,library)