两天啊,这两天被NS2整死了,刚开始想使用win7+cygwin+NS2,可到了后面bug太多,根本装不下去,网上提供的教程也不能解决我的问题,win7出错出的莫名其妙。废话不说,讲讲过程,为以后参考。
先在win7下安装cygwin,下载的本地安装,完全安装,没有出现问题,安装完成之后下载下来ns2-allinone-2.29.tar.gz。放在cygwin默认的主目录下面,解压,在cygwin中输入tar zxf ns2-allinone-2.29.tar.gz,再进入ns2-allinone-2.29.tar.gz文件夹中:cd ns2-allinone-2.29.tar.gz,输入 ./install,正常的安装下来就应该出现3个提示信息,可惜可惜,我一直都出现的都是无数的error,在根据网上的教程做了半天之后,我决定放弃win7,投入ubuntu的怀抱,于是开始作双系统。
先整理出来一个盘,大小要超过10G,然后在磁盘管理器中把它删除,这是留给linux用的。
从网上下载ubuntu10.04的ios文件,开始尝试硬盘安装,使用grub,可惜不管怎么设置都会出问题,每次重启选择安装linux都会出现missing mbr-helper,让我很是困惑,网上没有找到解决方式,又决定进行光盘安装,用win7自带工具将ubuntu刻到光盘上后再设置从光驱启动,重启则直接进入安装界面,安装过程按照提示一步一步走就行了,只有在硬盘选择的时候需要注意一下,需要把那10G多的空间分为两部分,1,2G左右分给swap格式,剩下的就挂在"/”,格式为ext4或者ext3都可以,这个格式windows是不认识的,不管他,继续进行安装,一切正常,但在点击开始安装之后出现bug,提示我“由于下列设备不能被卸载,所以不能继续安装”,我继续往下看,发现赫然写着“CDROM”,真是无语,如果你把CDROM卸载了,那我还怎么从光盘安装阿。这个错误无论是返回还是继续都无法解决。
于是我打算进入尝试使用ubuntu界面,先进入尝试使用的操作系统,然后在终端输入sudo umount /CDROM ,竟然成功了,在这个界面下点击桌面上的安装图标开始安装,恩,前半部分顺利过去了,可安装中又出现问题,这次不解释问题原因,只告诉我“如果你没有进行保密性的活动,可以将这个问题发送给我们”,无论我选择发送或者不发送,结果都是退出安装。
我郁闷至极,这个时候同学提示我可以换一个版本,我原来一直安装的都是ubuntu 10.04,我就又从网上下载了一个ubuntu 9.10,再次刻盘,再次安装,一次通过,太爽了,唯一要注意的问题是,在安装前要拔掉网线,否则它回去下载语言包,这可是从国外的源上下载,时间需要太久了,拔掉网线就不会下载了,这个语言包我们可以在安装结束后设置速度较快的源进行解决。
装好ubuntu,想使用中文输入法,这里可以使用scim,挺好用的,但需要先在系统管理中加入对中文的支持,所以还是要先找到一个比较快的源,我刚开始在公网下载,但速度一点都不快,速度不能上100K,一怒之下回学校,使用学校提供的教育网源,速度暴快,速度在7M左右,源的设置参考下面的文章:
http://forum.byr.edu.cn/wForum/disparticle.php?boardName=Linux&ID=82799&pos=75
源设置好之后进行一遍更新
sudo apt-get update #更新源列表
sudo apt-get upgrade #更新已安装的包
sudo apt-get dist-upgrade #更新软件,升级系统
安装输入法
sudo apt-get install scim
sudo apt-get install scim-chinese
就要开始我的主要目的,安装NS2了,安装NS2可让我吃了不少苦,先参考这篇文章(http://hi.baidu.com/sbzhysh/blog/item/709efb35cb3a0dbdd1a2d3fb.html)把作者碰到的所有问题都碰到了一遍,结果在作者说道可以成功安装的时候,我的机器还是继续出现新的问题,比如"can't convert from const char * to char *",实在很郁闷,后来在网上看到说这是由于ubuntu9.10的gcc编译器太新了,不支持旧版本的一些东西,我就去找旧版的gcc4.12,下下来后却怎么也解压不了,总是报错,一度崩溃。后来又在同学帮助下说不需要安装低版本的gcc,于是我继续在网上看有其他的安装方法,终于找到一篇文章可以解决问题:
http://merofxin.blogbus.com/logs/54669787.html
原文如下:
1、首先下载ns-allinone-2.34.tar.gz。这个去官网上找就可以了,Google一下也有很多吧。
2、按照[1]的步骤,先更新了一下系统。在终端输入:
sudo apt-get update #更新源列表
sudo apt-get upgrade #更新已安装的包
sudo apt-get dist-upgrade #更新软件,升级系统
不过我在执行第一条的时候,命令行总是到
94% [正在连接 archive.ubuntu.com (91.189.88.40)]
就卡住了。最后只能强行关闭终端。不知道是什么原因哈~网路连接问题么。但这个并没有影响后续的安装。
3、装几个需要使用的软件包
sudo apt-get remove gcc #移除gcc
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 libxmu-headers #for nam
4、安装NS2
把ns-allinone-2.34.tar.gz压缩包放到想要安装的目录下。我的是扔到了/usr下面。因为是写保护的文件夹,不能在窗口复制粘贴,所以在终端输入:
sudo cp /media/01CA4E644AAC9180/我的文档/程序/Linux/ns-allinone-2.34.tar.gz /usr
前面那一串路径比较麻烦- - 因为是挂载的Windows下的分区。好在用Tab键输入很方便。
然后继续……
cd /usr #到安装目录
ls #可以查看该目录下的文件
sudo tar -xzf ns-allinone-2.34.tar.gz #解压到当前目录
cd ns-allinone-2.34 #进入目录
sudo ./install #开始安装
然后命令行快速刷新,确实很养眼。但不一会突然报错:
……(以上省略)
make: *** [libotcl.so] 错误 1
otcl-1.13 make failed! Exiting ...
See http://www.isi.edu/nsnam/ns/ns-problems.html for problems
卡住了,很郁闷,于是上网找解决方法。在[2]上得到结果如下:
gcc 4.0版本以前是用ld -share来生成共享库的,但是到了4.0以上的版本,这个命令改为了gcc -share。在终端里输入gcc -v查看,我的版本是gcc version 4.4.1。
开始修改。
cd /usr/ns-allinone-2.34/otcl-1.13
sudo gedit configure.in
把77行的SHLIB_LD="ld -shared",改为SHLIB_LD="gcc -shared",保存退出。然后
sudo gedit configure
按照[2]中的说法,在5518行找,木有。于是Ctrl+F了一下,在6000+行找到了。把SHLIB_LD="ld -shared"改为SHLIB_LD="gcc -shared",保存退出。
cd回到目录ns-allinone-2.34下,重新运行
sudo ./install
顺利完成安装。最后出来提示:
Please put /usr/ns-allinone-2.34/bin:/usr/ns-allinone-2.34/tcl8.4.18/unix:/usr/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 /usr/ns-allinone-2.34/otcl-1.13, /usr/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 /usr/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、配置环境变量
用cd进入目录/home/hm(hm是我的用户名),然后
sudo gedit .bashrc
在文件末尾加入:
PATH="$PATH:/usr/ns-allinone-2.34/bin:/usr/ns-allinone-2.34/tcl8.4.18/unix:/usr/ns-allinone-2.34/tk8.4.18/unix"
LD_LIBRARY_PATH="/usr/ns-allinone-2.34/otcl-1.13:/usr/ns-allinone-2.34/lib"
TCL_LIBRARY="$TCL_LIBRARY:/usr/ns-allinone-2.34/tcl8.4.18/library"
保存退出(上述内容在安装结束后的提示中有,见粗体部分)。
6、验证
打开一个新终端,输入ns,如果出现%,则说明安装成功。
也可以进入/usr/ns-allinone-2.34/ns-2.34/,输入./validate验证。
到此。上面红色标注的部分记得都要用自己的安装路径替换。
参考:
[1] ubuntu-9.04-alternate-i386下安装ns2的方法和遇到的问题(原创)
[2] Ubuntu Linux 9.10 安装NS2笔记
仔细看了这篇文章,发现我所碰到的主要问题就是没有进行文章中提到的第三步,少了这几个软件包闹出这么多毛病,按照文章的方法执行一遍,一切ok