## Installing MRS

Installing MRS has been simplyfied considerably in version 5. However, you may still run into problems due to incompatible libraries or compilers. Please read this manual carefully and don't hesitate to contact me if you need more help.

### Ubuntu

If you're running Ubuntu 10.10 or later, you're lucky. The only thing you have to do to install MRS is this:

sudo apt-add-repository ppa:hekkel/ppa sudo apt-get update sudo apt-get install mrs-all

The way this works is by using the personal package archive at https://launchpad.net/~hekkel/+archive/ppa/. And by using this PPA, you will receive updates to MRS automatically.

Once you've installed MRS this way, you can run an mrs-update of the enzyme databank to test your installation. Since the data directory is owned by the newly created user `mrs-dba` you'll have to use sudo.

sudo -u mrs-dba mrs-update enzyme

If this finishes without errors, you have created an MRS file called enzyme.cmp in /var/lib/mrs/mrs. Have a look at the MRS config files in /etc/mrs to see what other databanks you can create.

### Installing the mrs applications

For now, MRS is distributed as an archive containing the source code, makefiles and a configure script. The first step is to install the development tools and all the libraries we need in order to build the MRS applications. We will use apt-get to install the software. The shoppinglist is:

- g++
- make
- libboost-all-dev
- zlib1g-dev
- libbz2-dev
- libperl-dev
- clustalw (this is optional)
- libarchive-dev
- liburi-perl
- libxml-xslt-perl
- snarf
- rsync

And so we type the command:

sudo apt-get install g++ make libboost-all-dev zlib1g-dev libbz2-dev libperl-dev clustalw (this is optional) libarchive-dev liburi-perl libxml-xslt-perl rsync

The OS will ask for your password (since we used sudo) and then it asks whether you want to install all the additional packages that are needed by the ones we typed in as well. Answer yes.

Several minutes later we have our server set up to start building MRS. We now need to download the source code. For this we go to ftp://ftp.cmbi.ru.nl//pub/software/mrs/ and download the latest mrs-src-5.0.2b.tgz file. (Have a look at this location to find out which one is latest.)

snarf ftp://ftp.cmbi.ru.nl//pub/software/mrs/mrs-5.0.2b.tgz

Now we extract the tar and cd into the newly created mrs-5 directory.

Now it is time to start the configure script. MRS comes with a handcrafted perl script that does the work, you start it by typing `./configure`.

As a side-note, the command `configure` can take several options that influence the way MRS is installed. If you type `perl configure.pl --help` you will get a list of available options.

perl configure.pl --help Using perl /usr/bin/perl Usage: perl configure.pl [OPTIONS] Using perl /usr/bin/perl Reading settings from previous make.config file Usage: perl configure [OPTIONS] --help This help message --prefix The installation directory prefix string Default is [/usr/local] --sysconfdir The base directory for configuration files Default is [/usr/local/etc] --localstatedir The directory for configuration files Default is [/var] --mandir The directory where man pages are installed. Default is [/usr/local/man] --data-dir The directory where MRS will store its data files. Default is [/data] --use-destdir Prepend $(DESTDIR) to the installation directories. --cc The compiler to use, perferrably a GCC >= 4.1 Default is [/usr/bin/c++] --gcc-march-flag=[] The -march=xx flag for gcc. This is used to build an optimized version of MRS code specifically for an architecture. Examples are 'nocona', 'prescott' and 'pentium4'. --rsync The rsync executable for updating the data. --snarf The snarf executable for updating the data. --boost_inc=[path] The path where the boost include files are installed --boost_lib=[path] The path where the boost library files are installed --zeep=[path] The path where libzeep is installed --no-blast Do not compile the BLAST code.

Now entering this configure command should print out a few lines about what it is doing and when there were no errors, the result will be a make.config file containing all the options for your machine.

We're now ready to build MRS. Simply type `make`. Building MRS will take a couple of minutes and a lot of messages are printed to the screen. When everything finishes OK, you should end up with a screen like this:

When make finishes, you can type `sudo make install`. This command again prints out lots of information about what it is doing, when finished your screen should look like this:

And now you have a complete MRS installation. To test it, you can create your first databank by typing the commands:

mrs-update enzyme mrs-test enzyme | head -25

The result should be a dump of the info for the enzyme databank as created in /usr/local/data/mrs/.

And that's it. Now you may want to start configuring the mrs-config.xml and the databanks.info files. You can read more about those in the chapter about configuring mrs.

### Web server

MRS comes with its own web server implementation that listens to different ports each serving different content. The default installation provides HTML for web browser consumption on one port and has serveral SOAP servers on the rest. You can specify this configuration in the mrs-config.xml file. It is perhaps very wise to put these ports behind a firewall and a reverse proxy.