在Ubuntu / Debian中安装Mono 3.x

我最近读到Mono 3.0已经发布了一个C#5编译器,并且支持MVC 4:

http://www.mono-project.com/Release_Notes_Mono_3.0

http://tirania.org/blog/archive/2012/Oct-22.html

对于我来说,我不能从Linux甚至是Windows的软件包中find解决方法。

这个页面似乎表明它仍然处于testing阶段:

http://www.go-mono.com/mono-downloads/download.html

我试过在Ubuntu 12.10上做一个apt-get install mono-complete ,但安装了2.10.8.1。

我试过在我的Windows机器上安装MonoDevelop 3,这只是给我MVC 3项目,似乎是使用.NET框架。

我对Mono来说是全新的,我已经Googlesearch了一切可能的尝试,看看它是如何工作的,但是我感到困惑。 如果可能的话,我很乐意在Linux上运行,并尝试一些东西。

有人可以点亮这个或我需要从源头上build立这个?

Mono 3.x对于Ubuntu 12.10来说太具有挑战性了。 以这种方式从directhex的PPA抓取预览包(这将安装3.2.1):

 sudo add-apt-repository ppa:directhex/monoxide 

(如果你使用Ubuntu saucy 13.10,在添加仓库之后,你需要编辑文件/etc/apt/sources.list.d/directhex-monoxide-saucy.list并用raringreplacesaucy一词)

然后,之后:

 sudo apt-get update && sudo apt-get dist-upgrade 

如果你之前安装了monodevelop,这也将使你得到MonoDevelop 4.x。

注意 :direchtex不是一些随机创buildPPA的人,他是所有基于Mono和Mono的软件包的Debian / Ubuntu维护者团队的一员。 所以使用这是升级您的基础设施的最正式的方式。


而对于debian用户来说:单声道3.0.6和MonoDevelop 4.0.x 已经可以在debiantesting中使用了 。 所以我推荐这样做的是:

  1. 安装debiantesting(目前名为debian jessie)。
  2. 通过执行sudo apt-get purge mono-runtime卸载mono。(这样做之后,请避免使用sudo apt-get autoremove的诱惑,否则会破坏系统,这是我在此报告的一个bug。
  3. 修改/etc/apt/sources.list ,find提到main源的第一行,并将jessie重命名为sid
  4. sudo apt-get update
  5. 通过sudo apt-get install monodevelop安装monodevelop sudo apt-get install monodevelop ,这也将把mono作为一个依赖。
  6. 恢复您在第3步中所做的操作。
  7. 再次执行第4步。

这样你就有了一个或多或less现代化的发行版(而不是debian稳定版),再加上非常非常现代化的单声道套装(Mono的最新版本通常非常稳定)。

F#用户:Mono 3.0.6有一个错误,阻止这个语言在这个版本的工作,请使用Mono 3.2.x。

这里是安装mono 3.0.1的完整指南

对于不知道如何在Ubuntu 12.04上获得新的Mono 3.0.1版本的初学者(因为我是一名初学者,在开始工作之前我已经为此工作了3天)

获得root访问权限以安装和configurationMono 3.0.1

 sudo -s ***type your root password*** 

安装vim编辑器

 apt-get install vim 

安装apache2

 apt-get install apache2 

安装编译单声道的工具

 apt-get install autoconf automake libtool g++ gettext libglib2.0-dev libpng12-dev libfontconfig1-dev apt-get install mono-gmcs apt-get install git 

安装apache2-threaded-dev(编译mod_mono需要) *

 apt-get install apache2-threaded-dev 

稍后我们将返回到apache2configuration

制作我们需要获取源代码的结构

 cd /opt mkdir mono-3.0 

在获取源代码之前移到新文件夹中

 cd /opt/mono-3.0 

从GitHub获取源代码

 git clone git://github.com/mono/mono.git git clone git://github.com/mono/xsp.git git clone git://github.com/mono/libgdiplus.git git clone git://github.com/mono/mod_mono.git 

编译libgdiplus

 cd /opt/mono-3.0/libgdiplus ./autogen.sh --prefix=/usr (the prefix is very important for Ubuntu 12.04) make make install 

编译单声道

 cd /opt/mono-3.0/mono/ make clean ./autogen.sh --prefix=/usr (the prefix is very important for Ubuntu 12.04) make make install 

编译xsp

 cd /opt/mono-3.0/xsp ./autogen.sh --prefix=/usr (the prefix is very important for Ubuntu 12.04) make make install 

编译mod_mono

 cd /opt/mono-3.0/mod_mono ./autogen.sh --prefix=/usr (the prefix is very important for Ubuntu 12.04) make make install 

mod_mono安装完成后,文件mod_mono.conf * 被添加到你的apache2文件夹(/ etc / apache2) *

configurationapache2

configurationApache的默认站点###(可选* )**

 vim /etc/apache2/sites-available/default Modify the line "DocumentRoot /var/www" by "DocumentRoot /var/www/YourFolder" (YourFolder is the folder where you publishing your website!) 

configurationYourFolder的权限(可选* )**

 cd /var/www/YourFolder sudo chown -R root:www-data . sudo chmod -R 774 . sudo usermod -a -G www-data <yourusername> 

添加mod_mono包括在apache2.conf中

 vim /etc/apache2/apache2.conf Add "Include /etc/apache2/mod_mono.conf" at the end of the file (without quotes!) 

在mod_mono.conf中添加指向ASP .NET 4.0的指针

 vim /etc/apache2/mod_mono.conf Add "MonoServerPath /usr/bin/mod-mono-server4" (without quotes!) under the "If Modules condition" 

重新启动apache2服务器 /etc/init.d/apache2 restart

我已经从源代码安装单声道3.x到Ubuntu Raring的几个步骤:

1:获得依赖关系,一举成名:

 sudo apt-get install build-essential autoconf automake \ bison flex gtk-sharp2-gapi boo gdb valac libfontconfig1-dev \ libcairo2-dev libpango1.0-dev libfreetype6-dev libexif-dev \ libtiff4-dev libgif-dev zlib1g-dev libatk1.0-dev libjpeg8-dev \ libjpeg-turbo8-dev libglib2.0-dev libgtk2.0-dev libglade2-dev \ libart-2.0-dev libgnomevfs2-dev libgnome-desktop-dev \ libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomeprint2.2-dev \ libgnomeprintui2.2-dev libpanel-applet-4-dev \ libnautilus-extension-dev librsvg2-dev libgtkhtml3.14-dev \ libgtksourceview2.0-dev libgtksourceview2.0-dev libvte-dev \ libwnck-dev libnspr4-dev libnss3-dev libwebkit-dev libvala-0.18-dev 

2:创build一个文件夹来保存源代码:

 sudo mkdir /opt/mono-3 

3:用git克隆到文件夹中

 cd /opt/mono-3 sudo git clone git://github.com/mono/mono.git cd mono sudo git checkout mono-3.0.12 

4:构build和安装

 sudo ./autogen.sh --prefix=/usr/local sudo make sudo make install 

而已!

要获取System.Drawing.dll和System.Windows.Forms.dll的最新更改,还需要configuration,构build和安装libgdiplus。

  cd libgdiplus ./autogen.sh --prefix=/usr/local make make install 

apt-get install安装你的发行版本的Mono版本,这似乎是2.10.8.1。 您的发行版可能包含或不包含更新的Mono软件包,您可能需要在发行版的软件包pipe理器中select一些更新的更新频道。 既然你没有提到你正在使用哪个Linux发行版(以及它的哪个版本),这是不可能回答的。

apt-get表明它是基于Debian / Ubuntu的,但是有很多不同的版本。 我是一个Mac的人,所以我只是不知道。

有关如何从源代码编译的说明,请参阅http://www.mono-project.com/Compiling_Mono

然而,这个问题真的属于superuser.com,如果你问这个问题,你会得到更好的答案。

我没有发现从任何地方链接,所以它可能是非官方的,但你可以从这里得到Mono 3.0.10的Windows安装程序:

http://download.mono-project.com/archive/3.0.10/windows-installer/mono-3.0.10-gtksharp-2.12.11-win32-0.exe

编辑 :为确保您正在下载最新版本,请打开http://download.mono-project.com/archive/ ,并检查每个版本子目录(从最后一个开始),直到find一个包含一个“windows-installer”子目录。

现在有一个指向Mono 3.0.1的Windows安装程序的链接。 不幸的是,它似乎并没有安装在Windows 7 64位。 你可能有更好的运气。

http://www.go-mono.com/mono-downloads/download.html

为了完成Dominique Goudreault有关“Denis The Menace在评论中提出的问题”Ubuntu 13.04 x86的绝佳解决scheme。 它说/ usr / bin / ld:testgdi.o:未定义的引用符号'g_print'“

请遵循这个简单的把戏,它为我完成。

http://www.sgvulcan.com/libgdiplus-2-10-9-build-fails-on-slacware-current64-2012-06/

我不能按照我的意愿回复评论,所以我必须在这里提出另一个答案,有没有更好的做法的build议?

更新:Opps,我没有注意到David V已经指出了解决scheme,给了他所有的功劳,我的链接也说了同样的事情,但也许提供了一个更清晰的path。 :P