Arch Linux 安裝 Mono 2.11.4 備忘錄
阿新 • • 發佈:2018-12-27
從原始碼編譯 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$ makemono-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 --versionMono 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 --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.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 的磁碟空間。