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

 更新时间:2014年07月17日 16:31:25   投稿:hebedich  
Mono是一个自由开放源代码项目。该项目的目标是创建一系列符合ECMA标准的.NET工具,包括C#编译器和通用语言架构。Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,OS X和Solaris,甚至一些游戏平台,例如:Playstation 3,Wii或XBox 360。

准备工作

一个全新安装的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:~$

安装成功。

相关文章

  • linux sudo命令详解

    linux sudo命令详解

    本篇文章主要介绍了linux sudo命令,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。
    2017-01-01
  • shiro会话管理示例代码

    shiro会话管理示例代码

    Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),直接使用Shiro的会话管理可以直接替换如Web容器的会话管理
    2017-09-09
  • 关于g++和gcc的相同点和区别详解

    关于g++和gcc的相同点和区别详解

    下面小编就为大家带来一篇关于g++和gcc的相同点和区别详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Ubuntu安装Matlab2020b详细教程和资源

    Ubuntu安装Matlab2020b详细教程和资源

    大家好,本篇文章主要讲的是Ubuntu安装Matlab2020详细教程和资源,感兴趣的同学赶快来看一看吧,希望对你有帮助
    2021-11-11
  • 101个脚本之建立linux回收站的脚本

    101个脚本之建立linux回收站的脚本

    众所周知,linux是没有回收站的,一些人很害怕删错东西(有经验的linux管理员极少范这错误),个人不建议回收站,而应该是培养个人的安全意识。有点小跑题
    2016-08-08
  • 解决Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.conf文件

    解决Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无d

    这篇文章主要介绍了Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.conf文件 ,本文给出了问题原因解析及解决方法,需要的朋友可以参考下
    2019-07-07
  • 如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡

    如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡

    这篇文章主要介绍了如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡,有对这方面感兴趣的同学,可以跟随小编一起来研究学习下吧
    2020-12-12
  • Cpanel下Cron Jobs定时执行PHP的方法

    Cpanel下Cron Jobs定时执行PHP的方法

    PHP代码需要定时执行,如果你有Linux或unix系统权限或网站使用的是Cpanel后台,那么可以使用Cron JOBS来完成PHP的定时执行功能。飘易简单介绍一下cpanel下的使用方法
    2021-07-07
  • Linux命令下crontab命令

    Linux命令下crontab命令

    crontab是一个用来设置、删除或显示供守护进程cron执行的定时任务的命令。下面给大家介绍linux命令下crontab命令,需要的朋友一起看看吧
    2016-11-11
  • shell编程之函数与数组的使用详解

    shell编程之函数与数组的使用详解

    这篇文章主要介绍了shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04

最新评论