59

我最近读到 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 的软件包。

此页面似乎表明它仍处于测试阶段:

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

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

我已经尝试在我的 Windows 机器上安装 MonoDevelop 3,但它只向我展示了 MVC 3 项目,并且似乎正在使用 .NET 框架。

我对 Mono 完全陌生,我已经用谷歌搜索了所有可能的东西,试图看看它是如何工作的,但我感到困惑。如果可能的话,我很想在 Linux 上运行它并尝试一些东西。

有人可以对此有所了解,还是我需要考虑从源头构建它?

4

7 回答 7

107

这是安装单声道 3.0.1 的完整指南

对于不知道如何在 Ubuntu 12.04 上获得新的 Mono 3.0.1 版本的初学者(因为我是初学者,我已经为此工作了 3 天,然后才使它工作)

获取 root 访问权限以安装和配置 Mono 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

稍后我们将回到 apache2 配置

制作获取源代码所需的结构

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) *

配置 apache2

配置apache的默认站点###(可选*)**

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!)

配置YourFolder的权限(可选*)**

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

在 apache2.conf 中添加 mod_mono 包含

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

于 2012-11-16T21:45:39.467 回答
47

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并将单词saucy替换为raring

然后,在那之后:

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

如果您之前安装了 monodevelop,这也将为您提供 MonoDevelop 4.x。

注意:directhex 不是随便创建 PPA 的人,他是所有基于 Mono 和 Mono 的软件包的 Debian/Ubuntu 维护团队的一员。因此,使用这是升级基础架构的最正式方式。


对于 debian 用户:mono 3.0.6 和 MonoDevelop 4.0.x已经在 debian testing 中可用。所以我建议得到这个是:

  1. 安装 debian testing(当前名为 debian jessie)。
  2. 通过这样做卸载单声道sudo apt-get purge mono-runtime(在这样做之后,抵制这样做的诱惑,sudo apt-get autoremove否则你会破坏你的系统,我在这里报告为一个错误)。
  3. 修改/etc/apt/sources.list,找到提到main来源的第一行,并将单词重命名jessiesid
  4. sudo apt-get update
  5. 通过安装 monodevelop sudo apt-get install monodevelop,它也会将 mono 作为依赖项。
  6. 还原您在第 3 步中所做的操作。
  7. 再次执行第 4 步。

这样你就有了一个或多或少的现代发行版(与 debian stable 不同),加上非常非常现代的 mono 包(Mono 的前沿版本通常非常稳定)。

F# 用户:Mono 3.0.6 有一个错误导致该语言无法在此版本中工作,请改用 Mono 3.2.x。

于 2012-11-14T17:42:05.250 回答
8

我已经从源代码安装单声道 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:在某处创建一个文件夹来保存源:

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:构建和安装

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

就是这样!

要获得 System.Drawing.dll 和 System.Windows.Forms.dll 的最新更改,您还需要配置、构建和安装 libgdiplus。

 cd libgdiplus
 ./autogen.sh --prefix=/usr/local
 make
 make install
于 2013-06-25T04:37:26.457 回答
4

apt-get install安装您的发行版附带的任何版本的 Mono,这似乎是 2.10.8.1。您的发行版可能有也可能没有较新的 Mono 包,您可能必须在发行版的包管理器中选择一些较新的更新渠道。由于您没有提及您使用的是哪个 Linux 发行版(以及它的哪个版本),因此无法回答。

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

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

但是,这个问题确实属于 superuser.com,如果你在那里问,你会得到更好的答案。

于 2012-11-13T18:47:44.870 回答
3

我没有从任何地方找到这个链接,所以它可能是非官方的,但你可以从这里获得 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/并检查每个版本子目录(从最后一个开始并向后移动),直到找到一个包含一个“windows-installer”子目录。

于 2013-07-09T19:13:44.047 回答
2

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

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

于 2012-11-14T17:27:55.337 回答
0

为了完成 Dominique Goudreault 关于“Denis The Menace 在评论中的问题”的出色解决方案,Ubuntu 13.04 x86. 它说 /usr/bin/ld: testgdi.o: undefined reference to symbol 'g_print'"

请按照这个简单的技巧为我完成它。

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

我无法如我所愿地回复评论,所以我必须在这里提出另一个答案,有什么更好的做法建议吗?

更新:Opps,我没有注意到 David V 已经指出了解决方案,把所有的功劳都归功于他,我的链接说的是同样的事情,但可能提供了一条更清晰的路径。:P

于 2013-07-13T22:27:59.483 回答