MONO 3.2升级到3.8,Jexus 升级到5.6.1的过程

之前的MONO是用源码安装的,按照张善友的那个教程(http://www.cnblogs.com/shanyou/archive/2013/05/04/3059926.html),找到源码并make uninstall删除
然后按官网的步骤(http://software.opensuse.org/download/package?project=home:tpokorra:mono&package=mono-opt)在centos下添加包源,然后利用yum安装
这里有一个坑,按官网的方式是
yum install mono-opt

 然后

/opt/mono/bin/mono -V
显示版本为3.8.0,然后再升级jexus,按官网的步骤
cd /tmp
sudo /usr/jexus/jws stop
wget linuxdot.net/down/jexus-5.6.1.tar.gz
tar -zxvf jexus-5.6.1.tar.gz
cd jexus-5.6.1
sudo ./upgrade
一切正常,提示成功,但重启jexus的时候报了一个文件找不到的异常
Cannot find libMonoPosixHelper.so
find / -name libMonoPosixHelper.so
没结果,这就郁闷了,然后在gg上一顿好搜,终于发现了一个文章,按它里面的方法是

http://tshock.co/xf/index.php?threads/installing-tshock-mono-centos-6-5.2945/ 

yum install mono-*opt
安装所有mono相关的包,好吧,依样画葫芦,运行之后,为稳重起见再yum update了一下,好家伙,上百个更新...
然后再重启jexus,一切正常...
以上步骤是在vm中运行的,然后跑到网站服务器上,按以上步骤做好...一切正常.很顺利,重启jexus之后,打开网站,靠,500,显示:
/usr//bin/mcs: line 2: /usr/bin/mono: No such file or directory
/usr/bin/mcs: line 2: exec: /usr/bin/mono: cannot execute: No such file or 
directory
重启机器,重启jexus,如故
静下心来想了一下,现在的安装和之前的安装路径是不同的,因为yum根本不让你选择安装路径,mcs是mono的.net sdk编译器,应该是这玩意跑到旧目录去找mono运行库了
于是vi /usr/bin/mcs ,果然发现了这一行
exec /usr/bin/mono $MONO_OPTIONS /usr/lib/mono/4.5/mcs.exe "$@"
把它改成新的安装路径
exec /opt/mono/bin/mono $MONO_OPTIONS /opt/mono/lib/mono/4.5/mcs.exe "$@"
重启了jexus一下,一切正常.....

教训是,一定要在vm环境下把所有步骤都确认好再去生产环境操作,刚才就是没在vm上确认好网站是否能正常运行就去服务器上升级了,结果郁闷了...

 

MONO相比在WIN下用IIS运行问题还是不少,也有可能是我程序的问题,500的次数比较多,而且一出现就必须重启jexus,所以这次升级到最新版本看看是否能解决..

 

出错时,debug信息中的堆栈太简陋了,没有行号,没有具体的文件路径实现是郁闷,或者是我没用好??

 

posted on 2014-09-06 00:36  imegg  阅读(555)  评论(0编辑  收藏  举报

导航