煎熬!终于配置好NS2+Gnutellasim了

走了无数弯路,尝试了n种方案,现在终于可以“正式”着手毕设了。
    花了这么多的时间和精力才走到这一步,不把这个过程记录下来就可惜了。
    由于习惯问题,先是在windows下用cygwin+ns2.28。按照网上搜到的一篇方法,到cygwin官网下了个最新版本的cygwin,又根据那篇日志里的链接下了个ns-allinone-2.28。充满期待的就以为会大功告成了。结果install之后,问题不断。花了n多精力去网上寻找“同命人”,想借鉴他们的方法解决问题,却怎么也搞不定。于是以为是cygwin的版本问题,因为这个版本是最新的,不兼容吧?我猜测。搞不定,又找不到旧版本,干脆直接换到linux系统下得了,反正装了个Ubuntu在电脑里没怎么打理。
    于是忿忿的转到Ubuntu下,二话不说,直接到官网下了个最新版的ns-allinone-2.33,嘿嘿,用最新的应该就是最先进的吧!这里安装起来倒是方便,直接install后,就能ns example了,都没来得及看清楚最后写了什么注意事项,就兴奋的validate了一下,看见大片的字母在控制台上花花的滚动,那个爽!当然遇到的问题是很简单的设置环境变量(网上解决方案太多了)。这时挺后悔没直接到Ubuntu来,毕竟ns2首先是基于linux环境的呀!接着一鼓作气,要装Gnutellasim了。
    到它的官网上看了看有三种安装方式,直接安装、PDNS方式和手动。看到手动安装的介绍里说,适合做过改动的ns。现在用的是2.33,相对2.26应该是有改动吧。于是用了这个方法(后来才知道,太笨了),对着它的revised files逐行修改源代码,那个小心...每次修改都要检查一两遍,毕竟这么大个工程,一两个小问题导致无法运行,多冤枉!好容易终于修改好了,运行成功!可以进入实质工作了。于是用Gnutella的例子ns.tcl试着跑了跑,出现什么classinfo.txt不存在的问题,把官网看了总算些出了个classinfo.txt。有出现了个srv.info不存在的问题...又看了好几遍Gnutellasim网站,没什么收获,有跑遍了能找到的google和百度链接,一无所获。郁闷了半天,那先妥协下,我运行smboot.ns.tcl总行了吧,不用srv.info了吧。这厢又出问题了,这回看报错的完全看不懂!又去跑遍了能找到的google和百度链接,还有号称国内最专业的几个NS论坛,没有进展。这下心凉了半截。估摸着这回不是ns的版本过高了吧,跟Gnutellasim又不兼容了!好,下个2.26重新安装下吧,希望看到曙光。安装的流程已经非常熟练了,install不一会却出了n多问题,根源搞清楚了是gcc版本过高的问题,但我换gcc版本?这貌似太高深了吧,我不自信这样做不会出什么问题,也没必要这么做吗!另想办法,于是找到我转的那两篇日志:转:ns-allinone-2.27 安装错误集锦转:Ubuntu6.10 + ns2.1b9a安装过程详解,里面的问题我基本全遇上了。小心翼翼的修改着ns2的源码,嘿,报错竟然真的一个个“迎刃而解”,正当我觉得就要解放时,遇到转:Ubuntu6.10 + ns2.1b9a安装过程详解里的最后一个问题!!!还是要换gcc!!!气得我...
    这会一是由于气愤,二是依旧没勇气涉足gcc的改动,我想还是回到windows+cygwin中算了,毕竟那的gcc(3.4)没这(4.2)这么高吧。于是把辛苦改了半天的ns2.26的文件复制到了一份到cygwin下,想试试gcc3.4能不能通过。换到windows下,依旧不行!这会看来非换gcc到更低的版本不行了。看现有的cygwin貌似提供不了更低的gcc版本了,试了它的n个源才发现旧版本是不存在的了,统一成了gcc3.4。这回我想自己编译个gcc试试总行吧,毕竟在windows下的cygwin虚拟环境中,总要保险得多。网上找了个2.95的版本(够低了不?),可搞了半天整不到cygwin当中去。又试了试3.0版的,依旧不行。这时不经意被我找到了个旧版的cygwin,里面的gcc是3.3的,万幸!又一次看到希望了。换了个cygwin,重头再来。不一会又让我凉了半截,X11貌似又出问题了,安装过程中识别不到。命途多舛呀!这时,实在没法的我“创造性”的把新版cygwin的安装包和旧版的放一块让旧版setup.exe去安装吧,同时借用新版的X11库和旧版的gcc3.3。这样倒是相安无事。我感到绝望的再一次install了一次,竟然成功安装了!!!唯一美中不足的是运行跟nam时还会出现cygwin1.dll相关的问题,成功在即,可又爬变了能找到的google和百度链接,涛声依旧。但此时,我信心大增,精神大振。也彻悟了所有问题的关键在于gcc的版本过高了,也痛下决心到Ubuntu下去降低gcc版本安装了。
    回到Ubuntu,怎么降低gcc?直接apt-get install最多只能降到3.3了。不管了,或许成吧。不一会按照同命网友的方法整到了gcc3.3。饱受打击的心灵有一次充满了渴望。install......error!!!有一次掉入了深渊!!!很多事情总是被逼出来了,实在无奈的我又一次“创造性的”把我所能找到的最地版本Ubuntu(6.06貌似)放到了我的Ubuntu8.04源文件中,update,里面竟然找到了最低达2.95的gcc!!!我感觉这是我最后一丝希望了,再降,gcc来到2.95。install,太顺利了!!太顺利了!!,我用的是下载好的没经过任何修改的ns-allinone-2.26包,中途只出了个relid后的'号问题!!!一切顺利的超乎我的想象,看着控制台上一行行代码花花的流走,不留下一点痕迹,直到最后的配置建议出现。我马不停蹄地把Gnutellasim2.26的包装上,一马平川!此时此刻,“往事一一涌上心头”,回首“那段艰辛岁月”,胸中感慨万千,兴奋,懊恼,解脱,悔恨...哈哈,写到兴头了,不过心情倒是这般复杂的。

    做个总结吧,从技术的角度上讲,遇到的一切问题的根源都是安装包对底层程序版本的依赖关系。ns2对cygwin的依赖,对gcc的依赖。我原以为Gnutellasim对ns2的版本也会是有依赖的,经过实践证明它在ns2.33、2.28、2.27和2.26上安装均未出现什么大问题,只要把ns2装好了,Gnutellasim的安装是会比较顺利的。还有就是在任何版本的ns2上安装时,根本不需要手动安装,太耗费时间和精力了,patch的功能是相当强大的,会很智能地帮你打补丁(这个有机会好好研究下)。再有就是一开始我在Ubuntu下装好ns2.28和Gnutellasim后运行出现的问题,竟然会一模一样的出现在ns2.26上!这可是Gnutellasim官网指定的版本!换句话说从ns2.28装好后的近一个星期的折腾,我的毕设结果是回到了同一起跑线上了。但是这个过程确是非常有收获的,对linux系统真是加深了不少了解和理解,也是“曲线救毕设”了。这里还不得不说的是想要在自由的开源环境下开展学习和工作真不是件易事呀,尽管经常听到“资深人士”对开源软件的啧啧称赞。就拿Linux和Windows来讲吧,虽然从更为深刻和长远的角度来讲,前者的开放自由会更有力地推进整个软件的发展。但是对于普通用户和初学者入门而言,windows那套严格规范的操作形式,显得远为友好也更容易上手。这或许正是windows在商业上能够如此成功的原因吧,毕竟大多数用户都只是普通用户,而且每个人都要经历初学者的阶段。而在技术领域总是Linux在独领风骚,并备受推崇。



   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值