扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在你使用Mono开发任何东西之前,你必须首先在你准备的平台上将Mono构建并运行起来.既然我这篇文章是讲Cross Platform.NET的,而且Mono的主要用处之一也是开发跨平台的应用程序,所以我将首先向你讲解Mono在windows和linux上的安装.我们先来看在windows上的安装吧,不过老实说吧,这太简单了.我前面已经提到过就是现在Mono最新的稳定版本是1.05,我也将要用这个版本来讲解.Mono最新的发布版本的下载页面是:
http://www.mono-project.com/downloads/index.html[^],不过我在每个章节中都会给出你可以直接去下载文件的链接.
如果你想要略过Mono在windows上的安装步骤的话,那你可以直接看后面的Mono在linux上的安装.
Installing Mono on windows
Mono可以运行在windows2000以及它的后续版本上.我用的是已经打过SP2补丁的windowsXP Professional.我现在要提醒你的是有可能我的安装步骤会和你自己的有一些出入,不过这种可能性应该不太大.现在就让我们来按以下步骤安装它吧:
1. 从Mono的下载页面下载Mono的windows安装程序,我下载时的地址是:
http://www.go-mono.com/archive/1.0.5/windows/mono-1.0.5-gtksharp-1.0.5-win32-0.1.exe
2. 这个安装程序是标准的windows安装程序,所以等你下载好以后双击就可以安装它了.
3. 当安装程序启动后,点击Next后进入License Agreement页面.
4. 这时首先看一下License Agreement页面的内容,在安装程序中对于不同的组件会有不同的许可.我知道很多人看也不看就直接选了Agree然后点Next,不过我劝你还上最好在同意之前先看一下它.
5. 在你同意了以后会出现一些有关安装程序的general information.我前面已经说过了安装程序已经包含了GTK#和XSP(这是要靠Web Server来运行的Mono,我会在这个系列文章的下一篇中介绍它)和另外的一些东西.
6. 点击Next然后选择文件的安装路径.
7. 再次点击Next后出现Select Components页面.虽然你可以自定义你的安装程序,不过我将在这个系列文章中用到所有的组件,所以我建议你还是选择默认的"Full installation"吧.
8. 再点Next你就可以自定义将在开始菜单中出现的Mono文件夹的名字.
9. 如果你选择了完全安装或者你已经安装过XSP的话,这时安装程序会要求你输入一个Web Server将要监听的端口号.一般来说是8088端口,不过你也可以将它改为任何一个空闲的端口.做好了以上工作就再点Next.
10. 最后,点击Install开始在你的机器上安装并配置Mono.
上面的操作可能写的太麻烦了.大多数的人在在整个过程中一直狂点Next早就做好了.但我一般在安装东西的时候都会在上面花些时间.这样你可以很清楚的知道你到底在你的机器上装了些什么东西.
现在你可以接着读下去来学习怎样在linux上安装Mono.但是如果你没有安装Linux,或者仅仅想在windows上开发的话,你可以略过下面的直接去看”你的Mono 工具集”那部分.
Installing Mono on linux
毫无疑问,linux是一个伟大的操作系统.然而,LINUX平台有一些基本的问题,那就是内核和大多数所支持的软件都是开源的(译注:我不太明白这里,作者的意思是不是很多软件都不支持Linux平台?),这个问题还算是简单的.更痛苦的是:很多不同的Linux系统对于软件安装的方法是不一样的.为什么你应该担心这些呢?因为在你的Linux系统上安装Mono会有一些复杂。看了下面的文字你就会明白我的意思了。
我决定用一种比较主流的linux系统来构建,运行Mono。一方面是因为我比较熟悉它,而另一方面的原因是我们内部的FTP服务器上已经有了一个DVD的iso格式的安装文件.没有一个下载点能下载完美的东西(注:我这里有疑问).你能猜到我选择的是什么吗? SuSE 9.2 Professional.我用Microsoft Virtual PC2004创建了两个一模一样的virtual PC.安装两个virtual PC的原因是我想要尝试用两种不同的方法来安装并配置两个相互独立的Mono.我不想让它们之间相互影响.我在安装的时候禁用了ACPI,而且安装的是默认的package,你第一步也应该这样做.这没什么技巧性的东西.我建议你安装SuSE 9.2 Professional作为默认的系统.
如果你安装的是一个不同的linux系统(请先在http://www.distrowatch.com/看一下Mono对它的兼容性怎么样)那么下面的步骤可能会不太一样.
The easy way
就像是标题所说的一样,这个方法是非常简单的.可它不是对所有的linux系统都有效.如果你已经看过了Mono的下载页面(http://www.mono-project.com/downloads/index.html[^])
你可以看到很多被一些主流的linux系统(如Red Hat, SuSE, Fedora, 和 Novell Linux Desktop)所支持的Package.现在大多数的Linux系统都可以支持这些Install Package,那些特定的系统将不在本文所考虑的范围之内.如果你使用的Linux系统不在那个列表里的话,那你就太不幸了,你就必须阅读你的系统文档看看这些Package是不是被你的系统所兼容,或者你也可以下载Mono的源代码来build Mono(这个问题会在下面的Not for the faint hearted里来讨论).如果你不太熟悉Linux的话,那么我建议你要尽你最大的努力来避免将设置搞的乱七八糟的.
好了,如果你已经有了一个在Mono的下载页面里给出的那些linux系统的话,那你就太走运了,因为这样的话后面的步骤那就很容易了.
1.在Mono的下载页面里,找到你所使用的linux系统,然后在点击旁边”packages”链接.我选择的是SuSE 9.2.
2.这时会跳转到另一个页面里,里面有一些针对你选择的那种linux系统的各种package,它们都是已经被编译并打包好的.
3.我们现在只要注意在左上方的"Mono Core Runtime and C# compiler"那个部分就行了.
4.在这里你需要点击Mono Core的下载链接.根据你所选择的package的不同,链接的名字也会有所变化.不过一般都是以"mono-core-1.0.5"开头的.我用的是 http://www.go-mono.com/archive/1.0.5/suse-92-i586/mono-core-1.0.5-1.ximian.10.4.i586.rpm
5.下载文件而且要记住你把它保存在什么地方.
6.当文件下载好以后就把它打开,这时你的系统的package manager会自动运行.
7.这时你就要用你的package manager来控制你的安装过程了.不过一般来说都会有一个"Install Package"按钮,直接点击它就行了.
8.如果不出什么意外的话,Mono过一会儿就会被安装好了.来庆祝一下吧!
如果你属于那种很好奇很无聊的人,或者上述的操作在你的系统上行不通的话,那就请阅读下面的文章来用源代码build and install.其实一般来说这也挺简单的,不过你会看到它还是要比我用SuSE 9.2 Professional的默认安装麻烦一些.
当你在package下载页面的时候,你也许已经注意到了Gtk#, XSP和另一些东西,这些在windows安装的时候都是默认的.这次你可以
忽略它们.在将来的文章中要用到这些的时候我会让你安装它们,我到时候会告诉你安装的过程.
Not for the faint hearted
如果你读到这里已经在你的linux系统上安装好了Mono,那你现在可以略过这一部分直接去看Your Mono toolset这一章节.不过当然了,如果你感兴趣的话也可以看看我怎样花两个小时的时间来编译源文件.
好了,现在我们就要开始编译Mono的源文件并且来安装它了. No problem.这”应该”是一个比较简单的工作.我已经在linux上无数次的配置,编译并安装了它,都没有发生过什么问题.这次也一样.在这个章节中我会在源文件的基础上向你解释它是如何工作的.然后我还会演示怎样用Mono的源文件来配置,编译并安装它.步骤如下:
1. 要做的第一件事就是从Mono的下载页面来下载源文件.下载页面的地址就是前面说的: http://www.mono-project.com/downloads/index.html[^].
2. 然后点击并下载Mono Runtime的源文件,位置一般是在顶部.我下载时的路径是: http://www.go-mono.com/archive/1.0.5/mono-1.0.5.tar.gz.
3. 当文件下载好后,我们就要使用控制台来完成剩下的工作.
4. 我建议你用管理员帐户来完成下面的工作.如果你是作为一个独立的计算机来使用linux的话你可以输入以下的命令sudo bash, 然后输入管理员密码来切换到管理员状态.
5. 使用tar -xvzf mono-1.0.5.tar.gz来解压文件, tar -xvzf mono-1.0.5.tar.gz是你下载文件的名字.
6. 然后切换到解压后源代码的路径(使用命令cd mono-1.0.5 如果你解压的路径和我不一样的话,就输入cd然后跟你所解压后文件的路径名)
7.现在,在我们开始编译源文件之前你先要配置make files.只要输入下面的命令就可以了: ./configure--prefix=/usr.这会花一点时间.我假定现在没有发生错误.从我下面所说的你可以看出,这种方法并不是只针对默认的SuSE 9.2 Professional安装
8. 当./configure --prefix=/usr命令完成后你就可以开始编译并安装源文件了.
9. 事实上想要编译Mono Runtime源文件的话你需要用到Make命令.
10. 最后就剩下安装了,没有什么合适的词语来形容这个步骤,只要简单的运行make install命令就行了.这时就会将被编译好的二进制文件,库文件和其他一些东西部署到你合适的路径中.
现在我该做什么呢?我已经安装好了SuSE 9.2 Professional和开发工具.但是就像我前面提到的一样,我使用的是默认的安装方式.对于那些习惯了windows和喜欢最小化安装方式的人来说,我会在下面演示这个步骤.
接下来的这些步骤就比较长了,我需要从Mono的源文件上配置,编译并安装它.这个过程并不复杂.每个步骤都是很简单的.但是那些对linux不熟的人在 Mono安装的时候看到一直提示他./configure--prefix=/usr失败,然后让他运行下面这三个命令(首先是./configure--prefix=/usr,然后是make,最后是make install)的时候都会觉得很恐怖的.我在想是不是应该在这篇文章中将Mono源文件的安装方法写的更多一点.因为我确定有很多遇到同样问题的人会希望分享我的经验.如果你已经安装好了MONO请跳过这一部分.
在这里你照着我做的这些做就行了:
1. 从http://www.go-mono.com/archive/1.0.5/mono-1.0.5.tar.gz下载"Mono Runtime 1.0.5"
2. 将下载的文件解压然后放到source directory中.
3. 用sudo bash命令切换到管理员状态
4. 在MONO上运行./configure --prefix=/usr命令
a. ./configure --prefix=/usr这是因为没有安装所需要的编译器.
b. 用Yast安装编译器(gcc c++和它附属的东西)
5. 再次为MONO运行./configure --prefix=/usr命令
a. ./configure 失败是因为默认的安装中没有安装bison
b. 从http://ftp.gnu.org/gnu/bison/bison-2.0.tar.gz下载bison
c. 解压下载的bison并且把它放在解压路径中
6. 为bison运行./configure命令
a. 为bison运行./configure命令失败是因为需要GNU m4 version 1.4或更高的版本
b. 从http://ftp.gnu.org/gnu/m4/m4-1.4.1.tar.gz 下载m4
c. 解压m4并且把它放到解压路径中
d. 为m4运行./configure命令……成功了!
e. 为m4运行make命令……成功!
f. 为bison运行make install命令……成功!
7. 第三次为MONO运行./configure --prefix=/usr命令
a. 运行./configure再次失败,因为需要"pkg-config",但在默认的SuSE 9.2安
装中没有安装它
b. 从http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz下载pkg-config
c. 解压pkg-config并把它放到解压路径中
d. 为pkg-config运行./configure命令……成功了!
e. 为pkg-config运行make命令……成功!
f. 为pkg-config运行make install命令……成功!
8. 第四次为MONO运行./configure --prefix=/usr命令
a. 这次会怎么样呢?...... ./configure又一次失败了.这次是因为需要glib-2.0(或更高的版本).但在默认的SuSE 9.2 的安装中并没有安装它.
b. 从ftp://ftp.gtk.org/pub/gtk/v2.6/glib-2.6.1.tar.gz
下载glib_2.6.1
c. 解压glib_2.6.1并把它放到解压路径中
d. 为glib-2.6.1 运行./configure命令
为glib-2.6.1运行./configure 命令失败, 因为在系统的C函数库里没有"gettext"的支持.从ftp://ftp.heanet.IE/mirrors/ftp.gnu.org/gnu/gnu/gettext/gettext-0.14.tar.gz.
下载gettext 0.14
解压下载后的gettext 0.14并且把它放在解压路径中
为gettext 0.14运行 ./configure 命令... 成功!
为gettext 0.14运行 make命令...
Make失败了,因为C#的编译器没有安装. :wtf: :confused:... make suggests installing Platform.NET :rolleyes(我这里不明白,所以贴原文了,谁明白的话告诉我:leib0474 at gmail.com)
Reconfigured gettext as there was no way I was installing Platform.NET just so I could install Mono.
为gettext运行 ./configure --disable-csharp 命令... 成功!
为gettext运行make命令……成功!
为gettext运行make install命令……成功!
d. 再次为glib-2.6.1运行./configure –prefix=/usr命令….成功!
e. 为glib-2.6.1运行make命令……成功!
f. 为glib-2.6.1运行make install命令……成功!
9. 第五次为MONO运行 ./configure –prefix=/usr命令….终于成功了!
10.为MONO运行make命令….成功!
11.为Mono运行make install命令….成功!
12.松口气吧!
上面那些编译源代码的步骤也许会让一些人感到一点痛苦,但这个过程其实真的是很简单的.主要的问题是在时间的花费上.例如每次为Mono运行./configure命令需要两三分钟的时间.和每次为另一些已经编译安装好的东西运行./configure的时间都差不多.一般来说make命令要比./configure花的时间长一些.也有一些时间是花在寻找,下载和解压那些所需要安装的不同的东西上面.噢!在我用这些安装好的工具之前我还要重新启动一次SuSE呢!
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者