使用 YUM 在 Centos 5.5 上安装 Mono

Posted

技术标签:

【中文标题】使用 YUM 在 Centos 5.5 上安装 Mono【英文标题】:Install Mono on Centos 5.5 using YUM 【发布时间】:2011-03-31 10:24:00 【问题描述】:

如何使用YUM 在CentOS 5.5 上安装Mono 2.6.7 运行时?

我知道如何从源代码构建 Mono。但是,根据页面 Getting Started With Mono Tools 可以直接安装二进制文件。我更喜欢安装二进制文件,以避免必须在磁盘空间很小的服务器上安装所有开发先决条件。

我应该向 YUM 添加新的存储库描述吗?我试过这样做,但我一定做错了,因为“yum list mono-core”仍然说旧版本(1.2.4-2.el5.centos)。

而且,为什么.rpm 在发布服务器上被称为“mono-addon-”?这有点令人困惑。听起来 .rpm 是 Mono 的附加组件。我猜他们的意思是他们是服务器的“附加组件”(?)。

【问题讨论】:

它们被称为附加组件,因为它们被安装到一个单独的前缀而不是通常的系统包。这样您就可以安装它们而不会与您的系统包冲突。 (这些包所基于的 SLES 存在更多问题。) 对了——这是标准的 linuxy 约定吗? 【参考方案1】:

除了octonion's post,如果像我一样,你想使用Apache mod_mono,你需要通过运行以下命令确保你安装了正确版本的mod_mono,它会得到正确的:

yum install mod_mono-addon

不要只发出yum install mod_mono。它可能会安装来自 CentOS extras 存储库的 mod_mono 1.2 版本,而不是您真正想要的。

作为参考,我在运行不正确的 mod_mono 版本时在 /var/log/httpd/error_log 中收到以下错误:

根目录:/ mod_mono 和 xsp 有不同的版本。预期为“9”,得到 6 System.InvalidOperationException:mod_mono 和 xsp 有不同的版本。预期为“9”,得到 6

如果你像我一样是新手,这是一个愚蠢但容易犯的错误。

【讨论】:

【参考方案2】:

我想通了。

新建仓库配置文件

cd /etc/yum.repos.d
vi mono.repo

将以下行添加到文件中

[Mono]
name=Mono Stack (RHEL_5)
type=rpm-md
baseurl=http://ftp.novell.com/pub/mono/download-stable/RHEL_5/
gpgcheck=1
gpgkey=http://ftp.novell.com/pub/mono/download-stable/RHEL_5/repodata/repomd.xml.key
enabled=1

更新 YUM 缓存以确保安全

yum clean all

安装 Mono 服务器堆栈

yum install monotools-addon-server

安装的二进制文件最终将位于“/opt/novell/mono/bin”中。

您应该发出以下命令来设置您的 shell 环境,以便它找到 Mono、mcs 和其他 Mono 工具

source /opt/novell/mono/bin/mono-addon-environment.sh

验证版本

mono --version

Mono JIT compiler version 2.6.7 (tarball Mon Jul 19 18:28:58 UTC 2010)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        GC:            Included Boehm (with typed GC and Parallel Mark)
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none

如果您希望 Mono 环境是永久的,您可以发出以下命令。

cp /opt/novell/mono/bin/mono-addon-environment.sh /etc/profile.d

单曲快乐!!!

【讨论】:

如果您收到错误“System.IO.FileLoadException: 无法加载文件或程序集 'System.IdentityModel, Version=3.0.0.0 ...”安装 WCF: yum install mono-addon-wcf跨度> 好东西!这些步骤还可以轻松在 EC2 上的 Amazon Linux AMI 上安装 Mono,但您必须在大多数命令前加上“sudo”。 @Dave Van den Eynde 在 Amazon Linux AMI 上,您可以键入“sudo -i”来获取 root shell。 我可以通过手动安装这个 rpm 来安装它:rpm -Uvh origin-download.mono-project.com/download-stable/openSUSE_11.4/… 这不再起作用了。您可以从源代码编译。手册可在mono-project.com/Compiling_Mono_From_Tarball 获得。 tarball 的链接也在那里。

以上是关于使用 YUM 在 Centos 5.5 上安装 Mono的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 6.*通过yum安装 MySQL-5.5

CentOS 6.5通过yum安装 MySQL-5.5

CENTOS 5.5如何安装git?

centos 5.5 下载git

Linux 下 YUM 安装 PHP 5.5

CentOS 下yum安装指定版本mysql的过程