从源代码编译 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 <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 的磁盘空间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
2005-10-12 漂亮的剪贴画