从源代码编译 Mono 2.11.4
基本步骤如下所示:
~$ cd repo repo$ wget http://download.mono-project.com/sources/mono/mono-2.11.4.tar.bz2 repo$ tar xjf mono-2.11.4.tar.bz2 repo$ du -hs mono-2.11.4* 438M mono-2.11.4 40M mono-2.11.4.tar.bz2 repo$ cd mono-2.11.4 mono-2.11.4$ ./configure --prefix=/opt/mono-2.11.4 ...... mcs source: mcs Engine: GC: sgen and bundled Boehm GC with typed GC and parallel mark TLS: __thread SIGALTSTACK: yes Engine: Building and using the JIT oprofile: no BigArrays: no DTrace: no LLVM Back End: no (dynamically loaded: no) Libraries: .NET 2.0/3.5: yes .NET 4.0: yes .NET 4.5: yes MonoDroid: no MonoTouch: no Mobile: no JNI support: IKVM Native libgdiplus: assumed to be installed zlib: system zlib mono-2.11.4$ make mono-2.11.4$ sudo make install
验证安装结果
试运行一下:
~$ /opt/mono-2.11.4/bin/mono --version Mono JIT compiler version 2.11.4 (tarball 2012年 10月 12日 星期五 09:57:56 CST) Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: Included Boehm (with typed GC and Parallel Mark) ~$ /opt/mono-2.11.4/bin/mcs --version Mono C# compiler version 2.11.4.0
检查一下 Arch Linux 自带的 Mono 2.10.8:
~$ mono --version Mono JIT compiler version 2.10.8 (tarball Sat Oct 6 23:22:30 UTC 2012) Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: Included Boehm (with typed GC and Parallel Mark) ~$ mcs --version Mono C# compiler version 2.10.8.0
检验 .NET Framework 和 CLR 版本
如下所示:
ClrInfo$ /opt/mono-2.11.4/bin/mono ClrInfo40.exe OS Version: Unix 3.5.6.1 CLR Version: 4.0.30319.17020 ( 2.11.4 (tarball 2012年 10月 12日 星期五 09:57:56 CST) ) Default Encoding: System.Text.UTF8Encoding System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.IO.Packaging.Package, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 System.TimeZoneInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Available Frameworks: Mono 1.0 Profile Mono 2.0 Profile ClrInfo$ mono ClrInfo40.exe OS Version: Unix 3.5.6.1 CLR Version: 4.0.30319.1 ( 2.10.8 (tarball Sat Oct 6 23:22:30 UTC 2012) ) Default Encoding: System.Text.UTF8Encoding System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.IO.Packaging.Package, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 System.TimeZoneInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Available Frameworks: Mono 1.0 Profile Mono 2.0 Profile
可见 Mono 2.11.4 已经支持 .NET Framework 4.5 和 CLR 4.5 了。Microsoft .NET Framework 4.5 RTM 和 CLR 4.5 对应的版本号是: 4.0.30319.17929。Mono 2.11.4 因为是 Alpha 版本,所以对应的版本号是 4.0.30319.17020。Microsoft .NET Framework 4.5 是就地替换 .NET Framework 4,她们的版本号都是 4.0.30319,一般认为 Revision 小于
17000 就是 .NET 4,大于 17000 就是 .NET 4.5。
磁盘占用
我们来看看 Mono 需要占用多少磁盘空间吧:
~$ du -hs repo/mono-2.11.4 /opt/mono-2.11.4 1.2G repo/mono-2.11.4 325M /opt/mono-2.11.4 ~$ pacman -Qi mono 名称 : mono 版本 : 2.10.8-2 URL地址 : http://www.mono-project.com/ 软件许可 : GPL LGPL2 MPL custom:MITX11 软件组 : 无 提供 : monodoc 依赖于 : zlib libgdiplus>=2.10 sh 可选依赖 : 无 要求被 : dbus-sharp gtk-sharp-2 mono-addins monodevelop 冲突与 : monodoc 取代 : 无 安装后大小:139620.00 KiB 打包者 : Tom Gundersen <[email protected]> 架构 : x86_64 编译日期 : 2012年10月07日 星期日 07时28分31秒 安装日期 : 2012年10月11日 星期四 08时07分59秒 安装原因 : 单独指定安装 安装脚本 : 否 描述 : Free implementation of the .NET platform including runtime and compiler
可以看出,Mono 2.11.4 源代码经编译后占用 1.2 GB 的磁盘空间,如果不研究源代码的话,安装完成后就可以删除了。Mono 2.11.4 目标代码占用 325 MB 的磁盘空间。而 Arch Linux 自带的 Mono 2.10.8 软件包占用大约 139 MB 的磁盘空间。
版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。
时间: 2024-10-27 08:06:04