Since I seem to go forever through this same lengthy procedure I tried to automate it a bit and modified a script I found for ubuntu to work on RedHat based RPM - Distros. Tested on centos6.3. Should work this way on RHEL5/6 and Fedora 17. If you need libgdplus or the other stuff of mono just add them to the loop. For a server install (console) mono seems to be enough…
#!/bin/bash
TOPDIR=$(pwd)
BUILDDIR=$TOPDIR/build
PREFIX=/opt/mono-2.10
export PATH=$PREFIX/bin:$PATH
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH
echo "installing prerequisites"
sudo yum install yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget
mkdir -p $BUILDDIR
echo
echo "downloading mono packages"
echo
cd $BUILDDIR
#PACKAGES=("mono-2.10.8"
#"libgdiplus-2.10")
PACKAGES=("mono-2.10.8")
URLS=("http://download.mono-project.com/sources/mono/mono-2.10.8.tar.gz"
"http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2"
"http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.11.tar.bz2"
"http://download.mono-project.com/sources/xsp/xsp-2.10.2.tar.bz2"
"http://download.mono-project.com/sources/mod_mono/mod_mono-2.10.tar.bz2")
echo Downloading
count=${#PACKAGES[@]}
index=0
while [ "$index" -lt "$count" ]
do
#only download it if you don't already have it.
if [ ! -f "${PACKAGES[$index]}.tar" -a ! -f "${PACKAGES[$index]}.tar.gz" ]
then
curl -O "${URLS[@]:$index:1}"
fi
#extract
if [ -f "${PACKAGES[$index]}.tar.gz" ]
then
tar -zxvf "${PACKAGES[$index]}.tar.gz"
fi
if [ -f "${PACKAGES[$index]}.tar.bz2" ]
then
bunzip2 -df "${PACKAGES[$index]}.tar.bz2"
fi
if [ -f "${PACKAGES[$index]}.tar" ]
then
tar -xvf "${PACKAGES[$index]}.tar"
fi
let "index = $index + 1"
done
echo
echo "building mono packages"
echo
for i in "${PACKAGES[@]}"
do
cd $BUILDDIR/$i
./configure --prefix=$PREFIX
make
if [ "$i" = ${PACKAGES[0]} ]
then
sudo make install
fi
done
echo
echo "installing mono packages"
echo
for i in "${PACKAGES[@]:1}"
do
cd $BUILDDIR/$i
sudo make install
done
cd $BUILDDIR
echo
echo "done"