终于狠下心来将那块SCSI的硬盘取下,为了mono~~~~~~
取下来硬盘之后,立刻就可以安装FreeBSD5.2.1了。
现阶段已经发布的最新的FreeBSD版本4.10和5.2.1都不能正常安装mono-1.0的ports。
据mono的ports的制作人讲mono的ports在4.10上不能安装是因为libc里面有一个死锁错误,导致在安装dll的时候随机性的死锁。
而mono还不支持在5.2.1上面安装,是因为mono需要的一个内核特性5.2.1还没有。
这样如果安装mono的ports需要升级成5.2-current。根据我的经验,升级后使用ports安装没有任何问题。
下面在安装xsp和mod_mono的时候预见的问题比较大:
xsp不能正确地make。
而mod_mono可以正常编译安装,但是ModMono.dll却不能正常编译。
在mono实现的ASP.NET的方案当中,xsp和ModMono.dll起着很重要的角色,就是起到真正运行一切ASP.NET程序的作用,而mod_mono只在apache当中拦截所有的被看作到ASP.NET请求,转发至ModMono.dll或者xsp去。
接下来要解决的就是正确编译xsp或者modmono.dll,我想我要解决这个问题,还是先从make文件如何编写入手,或者你们谁给我一个编译好的?
昨天,将前次安装的mono-1.0又重新作了编译,问题依旧。于是又用ports编译了mono-0.97。但是仍然不能顺利安装。问题是相同的:在向GAC里面安装各种动态链接库的时候!
我自己手动编译的mono在安装第一个dll的时候就出现了问题,ports编译的mono-0.97安装dll出问题的点是随机的。
我自己手动编译的mono在安装dll时候,有2个ltmono进程,而且总是处于poll状态。ports编译的mono-0.97安装dll的时候,只有一个mono进程,并且是RUN状态,CPU占用率也很高(最高到99%),但是很长时间(6个小时左右)没有反应,但是可以用Ctrl+C中断。
在mono社区 里面也看到有人报告mono官方发布的给FedoraCore2的安装rpm不能安装。google上面显示的资源也给人感觉mono并没有让dotNET的开发人员有太强列的兴趣,而开源社区的人对dotNET也没有太大的兴趣。
这次使用之后可能要间隔一段时间,才能在进行更深一步的测试了。时间大约是在周末。
家里买了一个宽带路由器,原来的代理服务器被我格了,配好宽带路由器上的虚拟服务器(NAT端口转发),咱们也来感觉一下在家托管。对了,还有动态域名。前两天看有人问luyan,他的花生壳是怎么装到Linux上去的,有人估计是在Linux上装虚拟机了,咱们不那么搞,咱们找一个支持FreeBSD的免费动态域名就好。首先声明:我不是在做广告——我用的是科迈的动态域名,感觉还不错,最关键的是免费而且支持FreeBSD。
言归正传:开始安装FreeBSD。
先说我的机器的配置,我的主板是QDI的工作站主板,694x芯片组,集成ATI RageMobile显卡,Intel百兆网卡,和一个双通道160兆的SCSI控制器。我装了一个PIII 766铜矿CPU,256Mb PC133内存,一个雅马哈724声卡,以及一块8139网卡。两块一盘,一块Seagate 18G SCSI硬盘,一块Seagate20G IDE硬盘。由于现在FreeBSD 5 的BootCD有问题,FreeBSD 5的光盘没办法在这个机器上启动,又没有软驱,所以选择装FreeBSD 4.10。
我把18G的SCSI硬盘作为主盘,20G的IDE硬盘作为/ftp挂点,准备将来提供FTP服务之用。我选择的是X+Developer安装,这样会把必要的编译工具和X都安装到机器上面,以便测试Windows App之用。我选的Windows Manager是KDE,没有装中文的环境,上中文的网站字体会比较乱,但是这还不是咱们的主要工作,所以忽略。第一次运行KDE的时候,会提示检测到有声卡(我单插的雅马哈724),但是没有驱动没办法工作,由于和前面同样的理由,也忽略。之后,可以安装cvsup,到cvsup.freebsdchina.org 去升级ports,这样安装操作系统的工作基本完成。
这个时候我们开始检查ports树,在/usr/ports/lang 下面可以找到mono这个目录,阅读里面的说明,可以得知这个ports还是仍然是为mono-0.97制作的。这样我们得自己编译mono-1.0,当然我们自己也可以制作ports,但是这个不是我们这篇文章的目的。mono的源码可以去他的mono-project网站下载。在正式编译mono之前还要检查一下系统内的几个库是否安装了,比如bison,glib和icu2。由于我们安装了X,以及KDE,这样glib就已经装好了。安装其他的应用或库,可能会依赖bison,所以之前要检查ports记录,可以用pkg_list命令。安装这些可以用ports直接安装,如果你的机器在网上建议直接在ports所在的目录make install,除非没连到互联网的时候再用网站上编译好的packages。bsion、glib、icu2都在/usr/ports/devel目录。
icu是ibm的一个unicode处理的库,我以前也没接触过,仔细观察了它的编译过程,发现里面还带有各个国家和公司的不同字符编码码表,以及到unicode的映射关系表,以方便不同的编码作相互转换。FreeBSD的ports中带有两个icu,一个是icu,一个是icu2。我们使用icu2。icu2的安装需要自己下载源码,这可能是因为ibm的发布许可不允许第三方发布吧!下载地址
这些mono依赖的部件都安装好之后,我们就可以开始编译了。解压生成mono-1.0这个目录。进入这个目录,根据文档得知,直接使用./configure就可以将代码进行编译前的配置。我们也可以使用./configure -h来查看这个脚本可以带的参数,也可以检查configure默认的设置,其中prefix是默认的安装目录。我们看到prefix的默认值是/usr/local,这个目录正好是FreeBSD里面ports安装的默认路径,所以我们不需要做什么修改,直接使用./configure。在这个脚本结束之后,会显示配置的结果。主要内容好像是虚拟机在单进程内执行,支持JIT,多语言支持使用的是icu2.8。
之后可以直接make,若干分钟以后(我的机器大约是半个小时不到),就可以编译成功。比自己编译JDK快多了。之后可以make check验证一下编译结果,也可以直接make install。我的make install在最后一个生成MONO_PATH的时候停住了,我睡了一觉早上看还是停在那里没有动,估计是有什么问题,早上上班没时间管,晚上再看看吧!
(持续)
找到的一个窍门,不让vpc弹出内存不够的对话框,强制开始了我的.NET2的试用过程。
安装完express的环境,立刻就有了一个感觉,express系列是对WebMartix的风格延续。vcs主要针对Windows的应用,vwd专门针对Web应用,此外vwd还支持多种语言开发(c#,vb,j#)。
在看过JohnnyHu的VC# Express vs Enterprise以后,发现差别还是不小的,决定找一套Enterprise来,只是公司的微软联系人在休产假,不然我现在已经开始download了。
vwd里面有一个新东东吸引了我的兴趣,在这里的ASP.NET页面中可以添加WebPartZone,而且可以向这些Zone中拖入WebPart。笔者我现在的工作就是带领一个team开发SPS上面的WebPart。如果这些工作可以服用的话,那么就不要说代码复用了,我们的二进制程序也可以复用了,一个字,“太爽了”!
由于在MSDN中还没有找到有关这一部分的资料,所以今天的试用体会就先告一段落。
在看了luyan的linux上使用mono的文章,我就开始心痒痒,mono也可以在FreeBSD上面用啊!
这里的朋友应该没几个不知道Linux的,但是对FreeBSD很了解的就不多了。FreeBSD是以BSD4为基础发展起来一个开源的Unix操作系统,使用BSD许可发布。BSD发布许可的内容很简单,就是:可以以任何方式来使用FreeBSD的源码和二进制程序,使用的时候只需声明代码来自FreeBSD。这样使用这个发布许可,你就可以在自己的代码任意使用FreeBSD的代码,而不用交费或者继续开源。这很有一点教科书的意味,恐怕没有谁为教科书上的知识而付过任何费用或者为此而不能申请自己的专利或者版权。
FreeBSD以及整个BSD系列的开源操作系统的风格也同样非常学院派。系统追求稳定可靠的同时,不断改进,对于软件包的发布集中控制。这样在FreeBSD的世界里面,不会有一个软件包会针对不同的FreeBSD版本发布很多个,因为FreeBSD只有一个发布人——就是FreeBSD的发布小组。
FreeBSD内建了很多令人瞠目结舌的机制。最醒目的是一个内置的操作系统模拟器,在这里面可以模拟linux、novell等等i386上面的操作系统,像Linux下面的二进制格式软件(jdk,oracle8/9)几乎都可以直接运行在FreeBSD当中。
由于FreeBSD的这些优秀特性,FreeBSD已经被很多大型企业用于各自的生产环境当中,很多网络设备的嵌入式系统也有FreeBSD的影子。同时FreeBSD也是微软认同的开源操作系统之一,早在2000年,FreeBSD就已经是微软 CLI 1.0 跨平台运行环境示范平台之一。
上面介绍完了FreeBSD,接着说说在FreeBSD上面实现mono和ASP.Net的事情。
我首先查阅了FreeBSD的ports列表,这里面显示ports安装只支持mono-0.97,也不支持mod_mono,看来只好自己安装了。
首先去http://www.mono-project.com下载mono1.0的源码,准备编译。
mono的出现有给我们带来了一个.net的平台,随着mono向不同平台的移植,也许一个新的java的模式又将开始!
几天前发布的mono1.0正式版,现在已经被一些Linux发行商继承进自己的Linux发布当中。今天就看到了这样一个发布:Tinysofa。这个是一个面对企业Linux发布,他提供的其他一些特性并没什么特殊,但是默认集成mono还是很特别,他继承的不是java,而是mono这样一个.net平台。
这也许是一个标志,意义在于.Net已经被大众接受,特别是需要预算相对要少得企业接受。
注:
TinySofa的网址
http://www.tinysofa.org
vs2005express一套东东我是下来了,但是看着哥几个开始写dotNet Framework2和vs2005express尝鲜的文章,我只能看着干咽吐沫。
话从机器配置说起,我们的开发用机是在上一项目开发的时候提的升级申请,后来一个人发了一条256的内存,我们一下子成开发部和工程部同事们羡慕的焦点。可是我们自己心里有数,人家微软工程师的笔记本都是1G的内存,没事就开个虚拟机给我们演示个什么的。
现在dotNet Framework2到手了,条件反射是装个虚拟机,我的机器也够意思,立刻告诉我只有128的可用内存。在我关了n个服务之后,还是达不到256地步。于是乎打起笔记本的主意。就在我装完dotNet Framework2之后,突然想起机器上还没有开发完的ASP.Net应用的命运,这是心已经提到嗓子眼了。等开始装SQL2005express之后,我的心彻底出来了——他开始把我的SQLServer停掉,然后替换我的SQL2000。如果SQL2000被干掉,我的应用铁定跑不起来了,马上就要交工了,总不能告诉人家你们得等微软的framework2的正式版出来再用,只好死心。
我现在就想以后有了钱,卖它个4G的内存,开两个虚拟机,一个跑linux,另外一个就为了占内存。
上帝盖茨又来北京了,上次好像是去年在哪个大学公开露面的,今天终于终于有一次露面了。对于会议本身我并不感兴趣,无缝计算的理念很好,但距离我们只少还有5年的时间。我更想见见这个我儿时心目中的神。知道比尔.盖茨的名字是在92年,比尔认为每个人都应该有一台个人计算机,就因为这句话我开始认为他是神。而今12年过去了,那种经验和崇拜没有了——消失的无影无踪了。
来过我非dotNet的朋友也许知道,我并不是微软技术的专业户,因为我认为竞争会使企业不懈的努力。
盖茨先生这次的排场十足,奥体中心遍布警察和保安,微软的工作人员比警察还多。更多的是学生,不否认盖茨先生让中国的一些大学生反感,但是他的成功也吸引了很多的中国学生。会场入口处,居然有机场和车站才有的x射线透视仪,而且是针对笔记本电脑包的——因为只有笔记本电脑才能过去,其他的包包都不让带。过了这关还有两个保安拿着金属探测仪,检验每一个的身上。还好我兜里只有一串钥匙。
我到的时候会场里面人还不多,慢慢的竟然差不多坐满了。我所在的是虽然最远的一个看台,但是位置还是比较正的。我们这个看台坐的主要是微软合作伙伴的来宾和媒体记者。我边上就有一个记者,自从盖茨先生开始讲话,就记个不停。由于我没有领同声翻译机,只有竖起耳朵,但是听力实在差劲,基本都没听懂。但是时间我也没浪费,拿着DC对着盖茨先生猛拍。这个时候我才感觉到高倍数光学变焦在这种大会场的情景是多么的重要,我把所有的变焦都开到最大,仍然没办法清晰拍摄到盖茨先生的五官,遗憾。下面是这次大会的一些照片。
http://blog.aspcool.com/fatiao/gallery/80.aspx
近期评论