在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中使用了 。 所以我推荐这样做的是:
- 安装debiantesting(目前名为debian jessie)。
- 通过执行
sudo apt-get purge mono-runtime
卸载mono。(这样做之后,请避免使用sudo apt-get autoremove
的诱惑,否则会破坏系统,这是我在此报告的一个bug。 - 修改
/etc/apt/sources.list
,find提到main
源的第一行,并将jessie
重命名为sid
。 - 做
sudo apt-get update
。 - 通过
sudo apt-get install monodevelop
安装monodevelopsudo apt-get install monodevelop
,这也将把mono作为一个依赖。 - 恢复您在第3步中所做的操作。
- 再次执行第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/ ,并检查每个版本子目录(从最后一个开始),直到find一个包含一个“windows-installer”子目录。
现在有一个指向Mono 3.0.1的Windows安装程序的链接。 不幸的是,它似乎并没有安装在Windows 7 64位。 你可能有更好的运气。
为了完成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