ubuntu13.10编译安装mono环境(一)

准备工作

一个全新安装的ubuntu13.10系统

下载Mono源代码并编译

  nike@NIKE-PC:~$ ls  Desktop Downloads Music Public Videos  Documents examples.desktop Pictures Templates  nike@NIKE-PC:~$ mkdir src  nike@NIKE-PC:~$ cd src  nike@NIKE-PC:~/src$ wget http://download.mono-project.com/sources/mono/mono-3.2.8.tar.bz2  --2014-03-27 21:24:30-- http://download.mono-project.com/sources/mono/mono-3.2.8.tar.bz2  Resolving download.mono-project.com (download.mono-project.com)... 54.240.168.102, 54.230.156.158, 54.230.157.116, ...  Connecting to download.mono-project.com (download.mono-project.com)|54.240.168.102|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 77515552 (74M) [application/x-bzip2]  Saving to: ‘mono-3.2.8.tar.bz2'    100%[======================================>] 77,515,552 189K/s in 10m 50s    nike@NIKE-PC:~/src$ ls  mono-3.2.8.tar.bz2  nike@NIKE-PC:~/src$ tar -xjf mono-3.2.8.tar.bz2  nike@NIKE-PC:~/src$ cd mono-3.2.8/  nike@NIKE-PC:~/src/mono-3.2.8$ ./configure --prefix=/opt/mono-3.2.8  checking build system type... i686-pc-linux-gnu  checking host system type... i686-pc-linux-gnu  checking target system type... i686-pc-linux-gnu  checking for a BSD-compatible install... /usr/bin/install -c  checking whether build environment is sane... yes  checking for a thread-safe mkdir -p... /bin/mkdir -p  checking for gawk... no  checking for mawk... mawk  checking whether make sets $(MAKE)... yes  checking how to create a ustar tar archive... gnutar  checking whether to enable maintainer-specific portions of Makefiles... no  checking whether ln -s works... yes  checking whether make supports nested variables... yes  checking host platform characteristics... ok  checking for gcc... gcc  checking for gcc... (cached) gcc  checking whether the C compiler works... yes  checking for C compiler default output file name... a.out  checking for suffix of executables...  checking whether we are cross compiling... no  checking for suffix of object files... o  checking whether we are using the GNU C compiler... yes  checking whether gcc accepts -g... yes  checking for gcc option to accept ISO C89... none needed  checking for style of include used by make... GNU  checking dependency style of gcc... gcc3  checking for g++... no  checking whether we are using the GNU C++ compiler... no  checking whether g++ accepts -g... no  checking dependency style of g++... none  checking dependency style of gcc... gcc3  checking for gawk... (cached) mawk  checking whether gcc and cc understand -c and -o together... yes  configure: error: You need to install g++    

因为没有安装g++而无法继续:

  nike@NIKE-PC:~/src/mono-3.2.8$ sudo apt-get install g++  [sudo] password for nike:  Reading package lists... Done  Building dependency tree  Reading state information... Done  The following extra packages will be installed:  cpp-4.8 g++-4.8 gcc-4.8 gcc-4.8-base libasan0 libatomic1 libgcc-4.8-dev  libgcc1 libgomp1 libitm1 libquadmath0 libstdc++-4.8-dev libstdc++6  Suggested packages:  gcc-4.8-locales g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg  gcc-4.8-multilib libmudflap0-4.8-dev libgcc1-dbg libgomp1-dbg libitm1-dbg  libatomic1-dbg libasan0-dbg libtsan0-dbg libbacktrace1-dbg libquadmath0-dbg  libmudflap0-dbg libstdc++-4.8-doc  The following NEW packages will be installed:  g++ g++-4.8 libstdc++-4.8-dev  The following packages will be upgraded:  cpp-4.8 gcc-4.8 gcc-4.8-base libasan0 libatomic1 libgcc-4.8-dev libgcc1  libgomp1 libitm1 libquadmath0 libstdc++6  11 upgraded, 3 newly installed, 0 to remove and 275 not upgraded.  Need to get 25.9 MB of archives.  After this operation, 28.2 MB of additional disk space will be used.  Do you want to continue [Y/n]?  ==============>省略了很多<==============    

重新初始化mono安装配置文件:

  nike@NIKE-PC:~/src/mono-3.2.8$ ./configure --prefix=/opt/mono-3.2.8  ==============>省略了很多<==============  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  JNI support: IKVM Native  libgdiplus: assumed to be installed  zlib:  nike@NIKE-PC:~/src/mono-3.2.8$    

./configure通过。

编译Mono源代码

  nike@NIKE-PC:~/src/mono-3.2.8$ make  ==============>漫长的编译~<==============  nike@NIKE-PC:~/src/mono-3.2.8$ sudo make install  ==============>省略了很多<==============  

安装成功。

设置PATH环境变量

  nike@NIKE-PC:~/src/mono-3.2.8$ cd ~  nike@NIKE-PC:~$ vim .bashrc  

在该文件末尾追加以下语句:

  if [ -d /opt/mono-3.2.8/bin ]; then  export PATH=/opt/mono-3.2.8/bin:$PATH  fi  

然后:

  nike@NIKE-PC:~$ . .bashrc  nike@NIKE-PC:~$ echo $PATH  /opt/mono-3.2.8/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games  nike@NIKE-PC:~$    

验证Mono是否安装正确

  nike@NIKE-PC:~$ mono --version  Mono JIT compiler version 3.2.8 (tarball 2014年 03月 27日 星期四 21:55:30 CST)  Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com  TLS: __thread  SIGSEGV: altstack  Notifications: epoll  Architecture: x86  Disabled: none  Misc: softdebug  LLVM: supported, not enabled.  GC: sgen  nike@NIKE-PC:~$ dmcs --version  Mono C# compiler version 3.2.8.0  nike@NIKE-PC:~$  

安装成功。

参与评论