Arch Linux 安装 Mono 2.11.4 备忘录
从源代码编译 Mono 2.11.4
基本步骤如下所示:
~$ cd reporepo$ wget http://download.mono-project.com/sources/mono/mono-2.11.4.tar.bz2repo$ tar xjf mono-2.11.4.tar.bz2repo$ cd mono-2.11.4mono-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 zlibmono-2.11.4$ makemono-2.11.4$ sudo make install
验证安装结果
试运行一下:
~$ /opt/mono-2.11.4/bin/mono --versionMono 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 --versionMono C# compiler version 2.11.4.0
检查一下 Arch Linux 自带的 Mono 2.10.8:
~$ mono --versionMono 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 --versionMono 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.UTF8EncodingSystem.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089System.IO.Packaging.Package, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35System.TimeZoneInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Available Frameworks: Mono 1.0 Profile Mono 2.0 ProfileClrInfo$ 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.UTF8EncodingSystem.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089System.IO.Packaging.Package, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35System.TimeZoneInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Available 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.41.2G repo/mono-2.11.4325M /opt/mono-2.11.4~$ pacman -Qi mono名称 : mono版本 : 2.10.8-2URL地址 : 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 <teg@jklm.no>架构 : 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 的磁盘空间。
参考资料
- 在 Ubuntu 10.10 操作系统中安装 Mono 2.8.2
- .NET Framework CLR 版本检测
- Microsoft .NET Framework 的版本
TAG: