Install Array Server On CentOS or RedHat

From Array Suite Wiki

Jump to: navigation, search

Contents

With Mono 4.0.4

Required Linux packages

Make sure you have some basic packages installed: CentOS/RHEL:

    yum install gcc gcc-c++ bison pkgconfig libtool libstdc++-devel \
       glib2-devel gettext make freetype-devel fontconfig-devel \
       libXft-devel libpng-devel libjpeg-devel libtiff-devel giflib-devel \
       ghostscript-devel libexif-devel libX11-devel python3 cmake

or Ubuntu:

apt-get install -f
apt-get update
apt-get install gcc g++ bison make git autoconf libtool automake build-essential gettext cmake python3 curl libtool-bin libgdiplus zlib1g-dev libglib2.0-dev
apt-get install libpng-dev libjpeg-dev libtiff5-dev libgif-dev libgs-dev libexif-dev libx11-dev fontconfig
apt-get install unzip
[back to top]


Sqlite

The user can either use an sqlite-based database for Array Server, or Oracle. If using Sqlite, version 3.6.4 or higher is required. It's recommended to install Sqlite with the same prefix as that used to install mono.


Install SqLite 3.7.14.1 2012-10-04 (Array Server was tested with this specific Sql Lite version - other versions might not work)

Sqlite can be downloaded from: sqlite download. The tar.gz file is recommended for installation.

wget -c http://www.sqlite.org/sqlite-autoconf-3071401.tar.gz
tar zxvf sqlite-autoconf-3071401.tar.gz
sudo mv sqlite-autoconf-3071401 sqlite
cd sqlite
./configure --prefix=/opt/sqlite
make
make install

sqlite3  --version

After installation, specify SqlitePath in either ArrayServer.cfg or AnalyticServer.cfg

[back to top]


Setting ulimit

Make sure the ulimit for "max user processes" and "open files" are set to the max value: 65536. You can check the values by typing: ulimit -a.

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 515184
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65536
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Modify ulimit in two config files following ulimit setup wiki.


Tips.pngAlso read Setting up ulimit for ArrayServer
[back to top]


Install Mono 4.0.4

Download Mono 4.0.4

wget -c http://download.mono-project.com/sources/mono/mono-4.0.4.1.tar.bz2

The bz2 file can be saved to a temporary location, e.g. ~/temp/

Compile and install

On the command line, type

tar jxvf mono-4.0.4.1.tar.bz2
cd  mono-4.0.4
./configure  --prefix=/opt/mono-4.0.4 --with-large-heap=yes
make
make  install

Note:

   The location of mono installed is set by the option "--prefix" in the configure step, which can be changed to another location.
   The option --with-large-heap=yes is to enable support for GC heaps larger than 3gb, which is required for NGS alignment, as well as some Array Server functions) 

Double check mono installation and version

ls /opt/mono-4.0.4/bin/mono* -all
/opt/mono-4.0.4/bin/mono --version
/opt/mono-4.0.4/bin/mono-sgen --version

Install Mono 4.8.1

If not done already, install cmake.

sudo apt-get install cmake

Download Mono 4.8.1

wget -c http://download.mono-project.com/sources/mono/mono-4.8.1.0.tar.bz2

The bz2 file can be saved to a temporary location, e.g. ~/temp/

Compile and install. On the command line, type

tar jxvf mono-4.8.1.0.tar.bz2
cd  mono-4.8.1
./configure  --prefix=/opt/mono-4.8.1 --with-large-heap=yes
make
make  install

Note:

   The location of mono installed is set by the option "--prefix" in the configure step, which can be changed to another location.
   The option --with-large-heap=yes is to enable support for GC heaps larger than 3gb, which is required for NGS alignment, as well as some Array Server functions) 

Double check mono installation and version

ls /opt/mono-4.8.1/bin/mono* -all
/opt/mono-4.8.1/bin/mono --version
/opt/mono-4.8.1/bin/mono-sgen --version

Libgdiplus

The mono libgdiplus package must be installed (either using yum, apt-get, or installing from source at libgdiplus). In addition, the mono config file must be edited to explicitly specify the location of libgdiplus.so.

cd /opt
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
tar  jxvf   libgdiplus-2.10.tar.bz2
cd  /opt/libgdiplus-2.10
./configure  --prefix=/opt/libgdiplus-2.10
make
make install

If installing from source, you may need to add the "/libgdiplusPrefix/lib" to the shared library search paths, and check to make sure libgdiplus library is on the shared library search paths. To check, type

$ ldconfig -p | grep libgdiplus
    libgdiplus.so (libc6,x86-64) => /opt/libgdiplus-2.10/lib/libgdiplus.so

Here the libgdiplus is installed at "/opt/libgdiplus" and has been set correctly. If not, one way to add it to the shared library path is by doing this (with root privilege),

echo "/opt/libgdiplus/lib" > /etc/ld.so.conf.d/libgdiplus.conf
ldconfig

If installing from yum, it may be necessary to additionally install the following:

yum install libgdiplus
yum install libungif libungif-devel


Edit mono config to point to libgdiplus

To connect mono and libgdiplus, modify the following config file: /MonoPrefix/etc/mono/config: Add the following line at the end of the file before </configuration>

<dllmap dll="gdiplus.dll" target="/opt/libgdiplus-2.10/lib/libgdiplus.so"/>

Further details can be found here, including a description of the error message if this is improperly performed.

Troubleshooting Libgdiplus errors

Libgdiplus compile errors


With Mono 6.10

Steps to be provided