在CentOS 5.x/6.x上安装Mono和Monodevelop

11
3个回答

35

在这些系统上,我通常会从源代码安装Mono。这需要更多的工作,但是您不必依赖可能已维护或可能未维护的过时或损坏的软件包。此外,它使升级到Mono的最新版本变得容易。

以下说明已在CentOS 6.4上进行过测试。

以root身份前往/usr/src

su
cd /usr/src

确保已安装 GCC 和相关软件(用于构建 Mono 源代码)

yum install gcc gcc-c++ libtool bison autoconf automake
抓取并解压缩Mono源代码。
wget http://download.mono-project.com/sources/mono/mono-3.0.7.tar.bz2
tar -xvjf mono-3.0.7.tar.bz2

构建并安装Mono

cd mono-3.0.7
./configure --prefix=/usr
make && make install

确保您已经安装了可用的Mono,并使用 mono --versionmcs --version 命令进行验证。

构建GDI+兼容层(System.Drawing所需)。

yum install glib2-devel libX11-devel pixman-devel fontconfig-devel freetype-devel libexif-devel libjpeg-devel libtiff-devel libpng-devel giflib-devel

cd /usr/src
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
tar -xvjf libgdiplus-2.10.9.tar.bz2
cd libgdiplus-2.10.9
./configure --prefix=/usr
make && make install

对于Mono来说就是这样了,但是构建MonoDevelop又是另一回事...

构建Gtk-Sharp

yum install gtk2-devel libglade2-devel

cd /usr/src
wget http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.8.tar.bz2
tar -xvjf gtk-sharp-2.12.8.tar.bz2
cd gtk-sharp-2.12.8
./configure --prefix=/usr
make && make install

很遗憾,我认为没有适合我们所需的足够新的gnome-sharp源代码包。因此,我们将从Git存储库中获取它。

yum install pango-devel atk-devel libgnome-devel libgnomecanvas-devel libgnomeui-devel git svn libtool

cd /usr/src
git clone git://github.com/mono/gnome-sharp
cd gnome-sharp
./bootstrap-2.24 --prefix=/usr
make && make install

对于 Mono Addins 也是一样的...

cd /usr/src
git clone git://github.com/mono/mono-addins
cd mono-addins
./autogen.sh --prefix=/usr
make && make install

最后,我们可以构建MonoDevelop本身。

cd /usr/src
wget http://download.mono-project.com/sources/monodevelop/monodevelop-3.1.1.tar.bz2
tar -xvjf monodevelop-3.1.1.tar.bz2
cd monodevelop-3.1.1
PKG_CONFIG_PATH=/usr/lib/pkgconfig
export PKG_CONFIG_PATH
./configure --prefix=/usr --select
make && make install

现在你应该在“应用程序”下的“编程”菜单中看到MonoDevelop了!

现在我们正在进行所有这些有趣的Git操作,很容易随时升级到最新(预发布)版本的Mono...

首次从Git检出:

cd /usr/src
git clone git://github.com/mono/mono
cd mono
./autogen.sh --prefix=/usr
make && make install

只需升级到最新版本(在第一次从Git构建后)

cd /usr/src/mono
git pull
./autogen.sh --prefix=/usr
make && make install

如果您不希望使用最新版本,您可以使用Git检出更稳定的Mono分支。我将把这留给维基百科来解决。


当我尝试编译gnome-sharp时,它会出现错误Could not find a part of the path "/usr/src/share/gapi-2.0/glib-api.xml"。有什么解决方法吗? - th1rdey3
@Justin 当我执行make和make install gtk-sharp时,出现以下错误:make[2]: *** [gtk-sharp-docs.zip] Error 127 make[2]: 离开目录 /usr/src/gtk-sharp-2.12.8/doc' make[1]: *** [all-recursive] Error 1 make[1]: 离开目录 /usr/src/gtk-sharp-2.12.8' make: *** [all] Error 2 - somethingSomething
我成功地在CentOS 5.9上安装了它,但是Mono 3.4.0无法工作。 - Matt Hudson
https://dev59.com/nGQn5IYBdhLWcg3wW2D3#18133056 - kodmanyagha
我已经成功构建了Monodevelop,但是我希望使用5.10版本的IDE。但是当我运行make时,出现了找不到nuget的错误。 - Joel Barsotti
这很棒,但它已经过时了。版本不匹配比现在的 MS DLL 地狱更糟糕。我们真的应该在新的 SO 文档和 MonoDevelop 文档上有一个像这样的操作指南页面,以便保持最新,否则在最近的 CentOS/Fedora/RHEL 上安装这个软件是一场噩梦。我已经连续三个晚上在尝试,目前在 RHEL7 上卡在 gtk-sharp 步骤上,从 make 中得到“只能直接包含<glib.h>”的错误提示... - Cee McSharpface

4
为了使gtk-sharp能够构建,我必须设置以下环境变量:
PKG_CONFIG_PATH=/usr/lib/pkgconfig
export PKG_CONFIG_PATH

没有这个文件,配置脚本会寻找csc.exe。

2
在这些系统上,我通常会从源代码安装Mono。虽然比较麻烦,但你不必依赖可能已被维护或未被维护的过时或损坏的软件包。
以下说明经过在CentOS 5.9上的测试。
由于Glib和GTK+的安装版本限制,在RHEL5(CentOS 5.x)上您可以编译的最新版本GTK#是2.10.4。使用此版本的GTK#,您可以构建的最新版本的MonoDevelop是2.0(甚至不是2.2)。
但仍然可以运行非常新的Mono版本。我有CentOS 5.x服务器提供ASP.NET MVC3应用程序。
以root身份前往/usr/src。
su
cd /usr/src

确保已安装GCC及其相关软件(以便编译Mono源代码)

yum install gcc gcc-c++ libtool bison autoconf automake

获取并解压Mono源代码

wget http://download.mono-project.com/sources/mono/mono-3.0.7.tar.bz2
tar -xvjf mono-3.0.7.tar.bz2

构建和安装Mono

cd mono-3.0.7
./configure --prefix=/usr
make && make install

请使用mono --versionmcs --version命令检查您的Mono安装是否正常。

构建GDI+兼容层(需要System.Drawing支持)。

yum install glib2-devel libX11-devel pixman-devel fontconfig-devel freetype-devel libexif-devel libjpeg-devel glib2-devel libtif-devel libpng-devel giflib-devel

cd /usr/src
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
tar -xvjf libgdiplus-2.10.tar.bz2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接