让Mono 4在Raspberry Pi上飞

  最近公司有项目想要在树莓派上作,代替原来的工控机(咱们是把工控主机看成小的主机用,一台小的工控主机最少也要600左右,而树莓派只要200多)。因而,公司买了一个Raspberry Pi B+和一个Raspberry Pi 2 B,并要求能在B+上作就尽可能用B+,缘由很简单,B+比Raspberry Pi 2要便宜70左右。拿到闻名已久的树莓派以后非常兴奋,试着从官网下载了官方推荐的镜像raspbian,用Win32DiskImager烧录到SD卡上,而后上电,起初屏幕上什么都没显示,无论从新烧写了多少次SD卡,屏幕都是黑的,后来发现原来屏幕是否显示,是须要配置一下config.txt文件里面的一些参数屏幕才会显示,我用的是HDMI接显示器,因此只要把config.txt里面跟HDMI有关的选项前面的#去掉就能够了。剩下的就比较简单了,配置一下就能够用了,初始登陆用户是pi。
  本人用的比较熟的语言是C#,树莓派上能用吗?答案是确定的,Mono 4是支持ARM设备的,这就意味着树莓派能够用C#写程序,但问题来了,怎么安装Mono 4呢?若是你用官方的镜像raspbian-wheezy,你会发现,经过apt-get怎么都装不上Mono 4,显示缺乏依赖项。因而,我想到有没有其余能够用的镜像,是否是镜像的问题,wheezy是debian的上一个版本,debian当前的版本是jessie,那么jessie(下载地址http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/)能够在树莓派上用吗?答案是能够,可是仅限于Raspberry Pi 2,由于jessie的ARM版系统是基于ARMv7的,Raspberry Pi 2是ARMv7的芯片,可是上一代的树莓派都是ARMv6的芯片。我试了一下,在jessie的系统里能够很轻松地安装Mono 4,不过B+的板子要怎么安装Mono 4呢?看到jessie上能够安装Mono 4,我想到了是否是找不到软件源,既然raspbian是基于wheezy的,那我把wheezy的debian官方源加上试试,结果,两个都不行。jessie确实能够装啊,因而我就直接把jessie的软件源加上了,结果是Raspberry Pi 2在raspbian上添加jessie源就能够顺利的安装Mono 4,而B+仍是不行,缘由很简单,Mono 4是支持ARM设备,但官方的软件源只支持ARMv7架构,若是要想在B+上用,就只剩下一条路了,直接在树莓派上编译源码,Mono官方有教程,这里简单的贴一下代码:架构

wget http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2
下载官方源码包 tar -xvf mono-4.0.1.44.tar.bz2 解压 cd mono-4.0.1 切换路径 ./configure --prefix=/usr/local 配置编译安装路径 make 编译 make install 安装

  这里虽然只有几行命令,可是中间的过程是极其缓慢的,B+编译安装完要8个小时,Raspberry Pi 2要3个小时……
  看到这个极其缓慢的过程,我确定是不想再来第二回的,因此,我很想把它们作成安装包,之后要用就直接安装一下就能够了,不用漫长的编译过程,找了不少办法,走了不少弯路……不少弯路……真的不少弯路……
  ……
  终于让我找到了一个能够比较简单的制做安装包的方法,就是用checkinstall,这是一个工具,须要提早用apt-get安装,因而上面的代码须要修改一下:工具

wget http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2
下载官方源码包 tar -xvf mono-4.0.1.44.tar.bz2 解压 cd mono-4.0.1 切换路径 ./configure --prefix=/usr/local 配置编译安装路径 make 编译 checkinstall 将编译后的文件制做成deb安装包,制做过程当中有一些参数要设置,不想费神的话,就直接用默认值吧。

  折腾了两天,终于达到了本身的目的,暮然回首,个人周末,个人六一,哎,这就是程序猿啊……
  最后,说一个小技巧,若是你也想不开要在树莓派上编译软件,并且通过漫长的等待也编译好了,可是忽然不知道下一步该怎么办了,请注意,必定要把你当前的SD卡烧录到IMG文件里,无论你之后想怎么作,直接烧写一遍SD卡就好了,不用再经历漫长的等待,这但是血的教训!
  最后的最后固然是作点好事,把我编译好的安装包分享出来,亲测可用哦!
  ARMv6(B+) : http://yunpan.cn/cw6NYzXkD9kHq 访问密码 63ae
  ARMv7(Raspberry Pi 2) : http://yunpan.cn/cw6NMKUztiSDu 访问密码 4efbpost

  (PS:我测试Mono是否正常运行是用的Jexus,若是能正常运行Jexus就认为是能够了,刚开始弄出了一版,mono -V有反应,csharp指令也能够用,可是由于编译路径问题,Jexus运行不了,因而折腾好久,最终能够正常运行Jexus了,Jexus怎么用我就不说了,宇内大神作的很简洁,直接看官网就能够了,http://www.jexus.org/)测试

相关文章
相关标签/搜索