分类: 系统运维
2009-12-25 18:35:43
第一次执行cygwin的时候,会根据目前电脑的使用者和电脑的名称等信息,在cygwin的home的目录下产生一个使用者的资料夹,并放入环境变量设定等相关档案(.bashrc、.bashrc_profile和.inputrc)(这三个文件要看个人电脑的配置和cygwin的安装目录,所以这三个文档不一定有。我的就没有,至于在这种情况下怎样配置路径,我会在后面讲到)。使用pwd命令可以查看当前路径。使用pwd的时候会创建home目录(/home/ling 注意,这里的ling是我自己的电脑管理员的名称,每个人的电脑是不一样的,如果是一样的,如有雷同实属巧合)。
接下来就是下载解压ns2了。
先去 或者 下载ns-allinone-2.30.tar.gz安装包。当然也可以选择下载单独的包,然后一个一个安装,不过真的不推荐,因为太麻烦了。
将压缩包ns-allinone-2.30.tar.gz复制到D:/cygwin/home/ling(这个目录是你的cygwin的安装目录下的home目录)下面,再进入cygwin环境中在home/ling目录下使用tar命令解压缩(tar xvfz ns-allinone-2.28.tar.gz)。命令为:
$tar zxf ns-allinone-2.30.tar.gz
解压完毕。
因为是ns2.30,它的nam调用的tk组件和xproto-
[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} {
bind Listbox
%W yview scroll [expr {- (%D)}] units
}
bind Li..."
如果在安装ns过程中,没有出现任何错误,但是在检测成功时输入ns simple.tcl等类似命令时,系统报错,且提示如上,那么恭喜你,你的系统也要打上补丁。
解决方法为:创建新文件,复制以下内容,更名为tk-8.4-lastevent.patch。(补丁可以到这里下载)
--- generic/tk.h.orig 2008-02-06 16:31:40.000000000 +0100
+++ generic/tk.h 2008-07-24 08:21:46.000000000 +0200
@@ -635,17 +635,15 @@
*
*---------------------------------------------------------------------------
*/
-#define VirtualEvent (LASTEvent)
-#define ActivateNotify (LASTEvent + 1)
-#define DeactivateNotify (LASTEvent + 2)
-#define MouseWheelEvent (LASTEvent + 3)
-#define TK_LASTEVENT (LASTEvent + 4)
+#define VirtualEvent (MappingNotify + 1)
+#define ActivateNotify (MappingNotify + 2)
+#define DeactivateNotify (MappingNotify + 3)
+#define MouseWheelEvent (MappingNotify + 4)
+#define TK_LASTEVENT (MappingNotify + 5)
#define MouseWheelMask (1L << 28)
-
#define ActivateMask (1L << 29)
#define VirtualEventMask (1L << 30)
-#define TK_LASTEVENT (LASTEvent + 4)
/*
把这个文件移动至ns目录下tk
在cygwin命令窗口中运行命令:
$cd /home/ling/ns-allinone-2.30/tk
$patch –p1
然后在提示patch哪个文件的时候输入generic/tk.h
这样,我们就把补丁打上去了。
打上补丁后,我们终于可以安装ns2.30了。 输入命令:
$cd /home/ling/ns-allinone-2.30
$./install
安装过程就开始了。由于目录不一样,上面的命令可能不太一样。
安装过程是很漫长的,因为我们下载的是源文件,机器还得先编译,等吧……
安装完后会出现这个提示:
呵呵,本人比较懒,图片直接拷贝别人的,但是大致界面大家都是一样的。
在这个提示信息里,我们要注意了,因为后面要更改配置路径,所以一定要仔细看清楚:上面提到了nam-1.12、tcl
更改配置路径:
(1)之前提到过,如果你的安装目录(/home/ling)下有三个文件,其中一个是后缀名为.bashrc的文件,那么你就在这个文件里修改路径。使用软件UltraEdit把它打开,(最好用UltraEdit,不要用记事本,应为该文件是unix文件,用记事本会出现意想不到的错误,当然如果你会用vi,肯定也没什么问题),在文件末尾加上
export NS_HOME=/home/ling/ns-allinone-2.30
export PATH=$NS_HOME/nam-1.12:$NS_HOME/tcl
export LD_LIBRARY_PATH=$NS_HOME/tcl
export TCL_LIBRARY=$NS_HOME/tcl
一共四句命令,其中红色字体的是要用之前提到过的信息更改。
保存。
(2)如果你找不到在/home/ling的目录下找不到那个文件,那么就去/etc下找到bash.bashrc文件(可以用文件搜索功能,因为在etc文件夹中有太多文件了),用UltraEdit打开,将上面四句命令添加到文件末尾,点击保存,不过这时候,修改还是没有生效,必须在cygwin下运行命令:
$cd /etc
$source bash.bashrc
从而使修改生效。补充一点:如果是这种情况,那么以后运行NS2,都得输入上述两条命令。
哈哈,到现在为止,安装已经完成了。
现在,我们要检测是否安装圆满:
打开cygwin,运行 startxwin.bat
这时应该出现这样的窗口:
然后在弹出的窗口中输入命令:
$cd /home/ling/ns-allinone-2.30/ns-2.33/tcl/ex
$ns simple.tcl
应该会出现这样的窗口:
这就表示ns2安装圆满完成了!恭喜恭喜!!!
我的安装过程大致就是这样了。
总结一下,安装的步骤有:
(1)下载安装cygwin,这里要特别注意不要漏掉必须要装的packet;
(2)下载压缩包ns-allinone-2.30.tar.gz,并把它解压到home目录(/home/ling)下;
(3)打补丁,这个要看版本,好像如果是2.29以上的都要装补丁;
(4)安装ns2.30;
(5)修改配置路径;
(6)检测安装是否成功。
如果大家还有什么问题,欢迎大家一起讨论!