cygwin+NS2.29安装之道(转)

最近接了一个需要进行网络模拟的项目。对与网络模拟一窍不通的本人算是一个挑战。于是乎开始整日上网搜索相关的资料,没想到这个世界的资源真是丰富多彩。最后发现了一个网络模拟的流行软件NS2,在经过多次尝试后,终于成功的安装并运行了该软件。下面就分享一下本人的安装经验。(本文特别综合了各种安装方法、并成功解决了如Cygwin没有生成home文件夹和.bashrc文件的问题以及提供了Cygwin的卸载方法)

首先如果想要了解NS以及相关内容,我力荐下面这个论坛,资源可以说相当的丰富,而且斑竹认真负责

http://www.baisi.net/forum-440-1.html

闲话少说,下面进入正题,开始安装我们的NS2网络模拟器。可惜不巧的是这个模拟器只能运行在linux平台下。如果本身就是linux平台我们只要下载相应的软件包解压后,运行install.exe,安装完成后再设定一下环境变量就ok了(具体的下载及安装过程见后面描述)。如果是windows平台,一般有以下三种解决方案:

1.装双系统吧,就是划出一个分区装一个linux系统,通常就是red hat,fedora之类的啦,双系统的安装方法baidu或者google一下应该有一大堆,就不赘述了。

2.装个虚拟机也不错,通常就是Vmware和virtual PC这两款,安装简单,使用方便。装完虚拟机后,再在上面安装一个linux的操作系统就ok了。最后再在虚拟的操作系统上安装NS2就ok了,这种方法的最大特点就是,非常的占系统资源,尤其是内存资源。如果系统配置不高的,就不要使用这个方法

3.这个方法也是我使用的方法,就是Cygwin+NS2了,这也是网络上通常推荐的做法。关于这个安装方法,网上也是写了一大堆,但是个人觉得最实用的是以下这个网址所推荐的:

http://hi.baidu.com/7stone7/blog/item/1f69b38bb5a0647f9e2fb4bb.html

这个里面提到的方法如下:

1. 最好不要到www.cygwin.com下载cygwin..也就是说不要从Internet上安装cygwin,而要从本地安装(PS:往往千奇百怪的错误就是因为从internet下载的cygwin的版本引起的)。,从这里下载http://140.116.72.80/~smallko/ns2/ns_setup.rar

2.解压下载的文件点setup..选“Install from Local Directory”,选好下载的文件所在的位置"ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin",安装 XFree86-base, XFree86-bin, XFree86-prog, XFree86-lib, XFree86-etc, make, patch, perl, gcc, gcc-g++, gawk, gnuplot, tar and gzip 。

在这里有几点解释,首先cygwin也是一个linux的模拟环境,但是它不像上面提到的虚拟机,不会占用系统的很大资源,关于cygwin和虚拟机的区别的具体描述大家可以从网上搜到相关的文章。下面进入正题,www.cygwin.com下载cygwin的确有一些麻烦,进入网站后,在网站的右上角有一个install now的图标,点击后就会得到一个几百k的setup.exe文件,这个文件就是一个专门下载cygwin软件的一个客户端,可以让用户自定义下载所需的部分,并且支持短点续传。

运行下载下来的setup.exe大家可以选择三种方式,第一个是直接从网上安装,这个方法会帮用户将软件下载到本地和安装这两个动作一起完成。第二个是只下载不安装,第三个则是从已下载的本地文件安装,按照上面的地址下载的压缩包已经包含了setup.exe和下好的软件安装包,大家选择从本地直接安装就可以了。

如果大家没有下载上面的安装包,而是直接选择第一项,点击下一步就会出现提示输入软件要安装的位置(这里推荐直接安装在c:cygwin目录下,不然可能会有问题),再点一下步则会提示你选择软件安装文件保存在本地的位置。在点下一步会让你选择连接网络的方式,通常就是第一项直接连接,点击下一步后,客户端会下载镜像列表,下载完成后列出可用的下载站点。如果你是教育网,你就选择一个含有edu的ftp或http地址,如果你是公网就选择台湾的ftp或http地址好了,如果这些网站都很慢,你就选择http里的cygwin.basemirror或cygwin.cybermirror这两个比较通用。选择完成后点击下一步,这时客户端会下载一个setup.bz文件,这个文件包含了你选择的下载站点的安装文件的目录信息。完成后客户端会列出所有的软件列表,这时用户可以自行选择需要安装的部分,建议点击all右边的defaul,让它变成install,这样就是完整安装,不过这样比较大,安装文件有600多兆,安装后可以达到2g左右,如果空间不是很大的人,建议下载上面给出的软件包,完全安装后也非常小。选择完成后客户端就开始下载软件,下载完成后就会开始自动安装,安装完成后,弹出一个提示框installation complete.

如果,由于某种原因在下载中途你关闭了setup.exe你可以重新启动它,按照刚才的步骤重新选择,但是注意所有的选项都必须和以前一样(setup.exe会自动记住你上次的选择)。如果你改变了任意一项都将能再断电续传。但是注意,如果某一个具体文件,比如perl.tar.gz 大小为3m左右,如果你下载了1m时退出,它还是会重新下载这个文件。但是perl.tar.gz以前的文件则不会重新下载了。

选择第一项按装的时候,会在setup.exe文件所在目录下生成一个setup.log文件,这个文件记录着用户的下载和安装进度。所以在下载和安装完成之前不要删除这个文件。但是如果安装完成后,你又卸载了Cygwin软件后,再想重新从本地安装的时候,请先删除这个文件,否则系统提示不需要安装。

如果你选择了第二项只保存不安装那么,点击下一步后不会问你软件需要安装的位置,而是直接问你软件要保存的位置,选择好后后面的步骤跟选择第一项时一模一样。

如果你选择了第三项从本地安装,点击下一步后,它会首先提示你软件要安装的位置,点击下一步后,它会让你选择你所下载的软件保存的位置,如果你直接下载了我所说的软件压缩包,那么你可以选择压缩包里的ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin文件夹,选择完成后一直点击下一步软件将自动完成安装过程。

安装完成后,在桌面上会看到一个Cygwin的图标,双击运行后会弹出一个类似linux的一个字符界面。如果你点击了该图标没有反应,那么恭喜你,你的bash文件没有安装成功,尽管你在安装的时候可能已经全选了shell包,但是这没有用,具体还需要安装哪些文件笔者也没有摸索清除,所以建议一开始就选择完全安装。这个时候,你可以重新完全安装覆盖原来的安装文件夹,或者卸载已安装的软件,重新安装(具体卸载方法请看后文)。如果第一次启动,Cygwin会在你的安装目录下(c:cygwin)目录下生成一个home目录,并在home目录下建立一个和你的windows账户名一样的一个文件夹,比如文件夹名为yourid。并且会在这个文件夹下(c:cygwinhomeyourid)生成三个配置文件,.bashrc,.bashprofile和.inputrc文件,这三个文件中最重要的是.bashrc文件,用户以后要自定义环境变量要用到该文件。如果你没有将软件安装在c:cygwin目录下,首先请验证是否在你的安装目录下生成了home文件夹,如果没有请去c盘看看是否在c盘生成了一个cygwin目录,并在底下建立了相应的home文件夹。

注意,在这里很多人会遇到没有生成home文件夹或者三个配置文件夹的情况(本人就深被此问题折磨)。于是在网上狂搜了一阵,确实发现了有人给出了解决方案,比如说重启windows系统,重装系统后一开始直接装cygwin等。但是,我只能说这些方法都是不灵验的,因为没有找到根本原因。后来本人仔细读了C:cygwinetcprofile文件发现了问题的所在,关键问题出现在profile中第31行的脚本中,如下所示:

# Here is how HOME is set, in order of priority, when starting from Windows
# 1) From existing HOME in the Windows environment, translated to a Posix path
# 2) from /etc/passwd, if there is an entry with a non empty directory field
# 3) from HOMEDRIVE/HOMEPATH
# 4) / (root)

# If the home directory doesn't exist, create it.
if [ ! -d "$HOME" ]; then
mkdir -p "$HOME"
echo "Copying skeleton files."
echo "These files are for the user to personalise"
echo "their cygwin experience."
echo
echo "These will never be overwritten."
echo
cd /etc/skel
/bin/find . -type f | while read f; do
fDest=`echo $f | sed -e 's/^.//g'`
if [ ! -e "$HOME$fDest" -a ! -L "$HOME$fDest" ]; then
/usr/bin/install -D -p -v "${f}" "${HOME}/${fDest}"
fi
done
fi

我们从头5行注解中可以看到(#打头的行为注解行,每一个#代表一行),cygwin的home文件加的获取优先次序是首先从windows系统的环境变量中获取用户的windows中的home文件夹位置作为home,这样通常启动后,用户在屏幕中敲入pwd会看到显示的目录是c:document and settingsuserid,cygwin不会在安装目录下生成专门的home目录和配置文件了。如果cygwin获取不到windows的用户home环境变量的内容,还会依次从2、3、4中寻找是否有合适的用户home信息,只有这些都没有的时候,cygwin才会尝试开始创建专门的用户home目录以及相应的配置文件。

知道了问题所在,解决起来也就容易了,首先一个最简单的方法就是在我的电脑上点击右键,选择属性,在弹出的菜单中选择高级,然后点击环境变量,在userid的用户变量(userid是你的账户名称)的菜单栏中找到HOME变量一栏,点中后选择删除(建议删除前先备份其中的值,以便以后有需要可以恢复。)然后点确定,确定就可以了。然后重新点开cygwin就可以看到屏幕上提示正在写用户信息。然后到c盘cygwin目录下就可以看到生成了homeuserid文件夹,并在里面生成了相应的三个配置文件信息。

当然你可能会质疑上面的方法是否会造成系统的不稳定,至少笔者到目前还没有发现任何不稳定现象。当然实际上我们之所以需要cygwin的home目录主要是希望能够获得.bachrc这个重要的用户信息配置文件。然而通常我们用cygwin都只有我们自己这一个用户,而不像在linux中可能的多用户。所以我们如果不想破坏windows系统的环境变量设置,可以采取的方法是,我们直接将想要配置的信息放到全局.bashrc文件中就可以了。全局.bashrc是安装完cygwin就存在的,它位于:c:cygwinetc目录下,名字是bash.bashrc。打开它会发现有一行注解# System-wide .bashrc file。只要将自己想要设的环境变量放到这里,效果和放到用户自己目录下的.bashrc中是一样的。

关于cygwin的使用信息,大家可以参看linux下的常用命令。这里推荐一个好的网站:

url.gifhttp://blog.csdn.net/onefish/archive/2004/12/25/229192.aspx

这个网站描述了一些cygwin使用的比较好的设置技巧,比如说如何显示中文文件名等问题。

关于cygwin的卸载,下面是一个比较好的网址:

url.gifhttp://blog.sina.com.cn/u/4b8c4f4c010007g9

这里提示的是,通常可以直接删除cygwin文件夹,再删掉注册表里的两条内容就可以了。

关于cygwin的安装过程就介绍到这里,下面开始讲解如何在linux下安装ns2的方法。具体方法依然可以参看

http://hi.baidu.com/7stone7/blog/item/1f69b38bb5a0647f9e2fb4bb.html

具体描述如下:

3. 到www.isi.edu/nsnam/dist/ns-allinone-2.29.tar.gz, 下载ns-allinone-2.29到c:cygwinhomestone(stone是我的机器名,机器名不能是有空格的两个单词,如a b)目录下。

4.点桌面图标进入cygwin,自动创建3个文件,在C:cygwinhomestone下,分别是.bashrc .bash_profile 和.inputrc

用tar xvfz ns-allinone-2.29.tar.gz解压文件。

修改C:cygwinhomedinglanns-allinone-2.29nam-1.11agent.h文件第73行NULL为0。

用cd ns-allinone-2.29进入/home/dinglan/ns-allinone-2.29目录。

用./install进行ns安装。

进入 /home/stone/.bashrc(最好用Uedit32编辑器)编辑.bashrc文件

在文件的最后加入

export NS_HOME="/home/stone(你的机器名)/ns-allinone-2.29"

export PATH="$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/unix:$NS_HOME/bin:$PATH"

export LD_LIBRARY_PATH="$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/

unix:$NS_HOME/otcl-1.11:$NS_HOME/lib:$LD_LIBRARY_PATH"

export TCL_LIBRARY="$NS_HOME/tcl8.4.11/library"



5.若要验证的就用cd ns-allinone-2.29/ns-2.29 ; ./validate

不过要花好长时间,我没等验证完就关了。可以运行example2.tcl 的例子:启动cygwin,cd ns-allinone-2.29/ns-2.29,cd ns-tutorial/examples,然后startxwin.bat,ns example2.tcl。

如果错误是“找不到NAM命令”,那么把nam.exe和ns.exe都copy到examples目录下就行了

这几个步骤描述的非常的详细和正确,不需要笔者再赘述了,需要提示的如果系统提示“找不到NAM命令”时(笔者没有出现这个问题),nam.exe和ns.exe的位置在C:cygwinhomeuseridns-allinone-2.29bin目录中。但是也有特殊的情况就是如果在bin目录下找不到nam命令时,首先进入目录home/userid/ns-allinone-2.29/nam-1.11,然后运行命令(./configure && make && make install)后会在homeuseridns-allinone-2.29nam-1.11目录下生成一个nam.exe文件,把nam.exe文件拷贝到homeuseridns-allinone-2.29bin目录下就可以了。需要注意的是如果bin目录下有nam.exe和ns.exe目录,依然提示找不到NAM命令,通常是由于没有在环境变量中正常设定ns的path。请重新验证自己在.bashrc文件中设置的环境变量是否正确。大家还可以在网络中找到更多类似的设定ns环境变量的文章。

再次还需要提示的是,如果用户输入startxwin.bat命令后,没有弹出一个新的x字符窗口,那么首先请确定在安装cygwin时,x11包是完全安装了的,否则请重新完全安装。如果的确完全安装了x11包,那么请到C:cygwinusrX11R6bin目录中找到startxwin.bat文件,右键编辑找到SET CYGWIN_ROOT=cygwin,确定CYGWIN_ROOT变量确实对准了安装路径。

这两天发现很多人都问到安装过程中的路径问题以及/home找不到等,其实我在置顶的贴里已经写了一篇详细的安装解释的文章,发现大家都不愿意去看,只好专门写一贴来讲解各种路径设定的问题。

首先,大家安装完后如果第一次启动会看到窗口提示正在创建用户的三个文件分别是.bashrc
.bash_profile和.bashrc。这时大家到自己的cygwin安装目录下(默认为c:cygwin下)一定会发现一个home目录,并且在home目录下建立了上面三个文件。
而通常xp下则不会创建这个home目录,至于具体原因可以去读一下我置顶文章里的解释,这里不再重复,解决方法如下
右键我的电脑,属性,高级,环境变量,在你自己的用户变量列表中找到HOME变量,删掉它。关掉cygwin后重启,就一定会看到系统开始创建home目录和三个配置文件。
但是,由于很多原因,比如说有的人在自己的用户环境变量里找不到HOME这个变量(寒,还是重装系统吧,orz)可能cygwin就是不能给我们生成/home文件,我们一样可以解决这个问题。其实只要明白我们为啥要找到/home文件夹,这个问题就好解决了?主要想要里面的.bashrc文件。所以重要的不是这个/home文件夹,而是哪里能设置我们需要的cygwin的环境变量。这时要做的一件事就是首先弄清楚,cygwin默认的你的/home文件夹到底在哪里?这个确认很简单。
1.进入cygwin后,打pwd命令后,返回的一定是你的默认home路径。正常情况下是/home/yourid(完整路径为c:cygwinyourid)。完整路径的获得方法则是输入 cygpath -dm "`pwd`"就可以了。
2.或者你可以输入env命令,找到HOME这一项,可以看到HOME=...,等号后面的就是你现在的默认home路径。

只要知道这个默认的home路径,问题解决起来就容易多了。我们只要把三个配置文件拷贝到这个默认的home目录下,问题就解决了。那你会问这三个配置文件哪里找去?打开C:cygwinetcskel目录,你就会发现它们静静的躺在那里。这三个文件就是cygwin一开始为用户准备的。把这三个文件拷贝到你的home目录下就可以了,然后用文本编辑器打开.bashrc文件,把你需要设定的环境变量和参数写在这里,保存后重新启动cygwin就可以看到已经生效了。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9378682/viewspace-1017887/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9378682/viewspace-1017887/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值