User talk:Darek Kedra/sandbox 21: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
Line 137: Line 137:
Also some modules do not install (at least on my machine) from perls CPAN shell. These may require installation by hand from sources (described later).
Also some modules do not install (at least on my machine) from perls CPAN shell. These may require installation by hand from sources (described later).


===CPAN Shell===
Easy things first:
Easy things first:
<pre>
<pre>
export PATH=/home/ensembl_usr/local/bin/:$PATH
export PATH=/home/ensembl_usr/local/bin/:$PATH
Line 252: Line 254:
</pre>
</pre>


Problems:
===From sources===
*  DBD::mysql
Problem: requires MySQL (at least mysql client) on the same machine
** install MySQL
mysql-5.1.46
<pre>
./configure --prefix=/home/ensembl_usr/local/
make
make check
make test
</pre>
this is a long compile even on a fast machine.
 
** DBD::mysql itself
<pre>
cd DBD-mysql-4.014
perl Makefile.PL --with-mysql=/home/ensembl_usr/local/mysql/
make
make install
</pre>
 
Not tested: for proper testing you have to have an access to a running MySQL instance
 
* Bio::Das::Lite
===> problem in CPAN shell: install Bio::Das::Lite
 
depends on  WWW::Curl ,
reports SZBALINT/WWW-Curl-4.11.tar.gz
Running make install
  make test had returned bad status, won't install without force
going for source install
** WWW::Curl
got: WWW-Curl-4.11
 
<pre>
cd WWW-Curl-4.11/
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
#Failed 1/20 test programs. 3/177 subtests failed.
#make: *** [test_dynamic] Error 255
 
make install
</pre>
 
 
** Bio::Das::Lite
<pre>
cd Bio-Das-Lite-2.03/
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
#Failed 18/22 test programs. 0/1 subtests failed.
 
make install
</pre>
 
This one does not look good. A number of errors like "Bareword "CURLOPT_PROXYUSERNAME" not allowed while "strict subs" in use at lib/Bio/Das/Lite.pm line 861.". No solution at this point.
 
 
* Template::Toolkit
* Template::Toolkit
    Used by BioMart
Used by BioMart
    http://www.cpan.org/modules/by-module/Template/Template-Toolkit-2.15.tar.gz
got Template-Toolkit-2.22
<pre>
cd Template-Toolkit-2.22
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
#All tests successful.
make install
</pre>
 
 
===ParallelUserAgent ===
The most current version (2.57) has not been updated in years, and requires old (5.812) wersion of LWN.
 
* git (in case you do not have it)
http://git-scm.com/
got git-1.7.1
 
<pre>
./configure --prefix=/home/ensembl_usr/local/
make
make test
make install
<pre>


* install DBD::mysql -> problem... on a machine without mysql
* libwww  ver. 5.812
 
<pre>
mkdir libwww_old
cd libwww_old
git clone git://gitorious.org/libwww-perl/mainline.git
cd mainline
git checkout R5.812
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
#local/httpsub.t      (Wstat: 512 Tests: 0 Failed: 0)
#  Non-zero exit status: 2
#  Parse errors: No plan found in TAP output
# <snip>
# Failed 1/33 test programs. 0/833 subtests failed.
</pre>
 
* ParallelUserAgent (itself)
 
<pre>
export PERL5LIB=/home/ensembl_usr/local/lib/perl5/
 
wget http://search.cpan.org/CPAN/authors/id/M/MA/MARCLANG/ParallelUserAgent-2.57.tar.gz
tar xfvz ParallelUserAgent-2.57.tar.gz
cd ParallelUserAgent-2.57
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
# All tests successful.
make install
</pre>

Revision as of 09:27, 8 May 2010

ENSEMBL Install

At this moment (2010-05-08) this is not a validated procedure guaranteed to give you a fully functional local ENSEMBL mirror / instance. These are observations observations made during an ongoing attempt to get such working installation.

Hardware

  • 4 cores Intel(R) Xeon(R) CPU E5405 @ 2.00GHz
  • 16GB RAM

This is not a prerequisite, but compilation times on slower machine will take longer time.

Software

  • Fedora 8 64-bit Linux
  • gcc 4.1.2

Requirements

  • without any databases sources directories < 1 Gb,
  • destination directory (apache2, mysql, perl, perl modules, ensembl + bioperl code, etc. ca 600Mb

General remarks

This is an attempt to get a working local ENSEMBL in a step-by-step fashion. Most likely one can get away with a bit smaller number of perl modules, no brand new copy of Perl, using distribution-specific apache2, etc. On the other hand for an ENSEMBL newbie, the safest path is to stay at the beginning as close to the provided configuration as possible. Instead of performing 100 steps, from software components installation, MySQL database creation, data loading and with final editing of ENSEMBL configuration files it may be safer to treat each of the steps separately and use error messages as checkpoints.

Web server installation

ENSEMBL relies on mod_perl.

Perl

http://www.perl.org/get.html got perl-5.12.0

cd perl-5.12.0
cd perl-5.12.0/
CFLAGS='-m64 -mtune=nocona'  ./Configure -des -A ccflags=-fPIC -Dprefix=/home/ensembl_usr/local/ 
make
make test
make install

The "CFLAGS" line is required on 64-bit Linux system to compile mod_perl. See relevant section below

Apache httpd

http://httpd.apache.org/download.cgi got httpd-2.2.15.tar.gz

installation:

./configure  --enable--deflate --enable--headers --enable--expires --prefix=/home/ensembl_usr/local/apache2
make
make test
make install

checking what is build in:

/home/ensembl_usr/local/apache2/bin/apachectl -t -D DUMP_MODULES

my output:

core_module (static)
 authn_file_module (static)
 authn_default_module (static)
 authz_host_module (static)
 authz_groupfile_module (static)
 authz_user_module (static)
 authz_default_module (static)
 auth_basic_module (static)
 include_module (static)
 filter_module (static)
 log_config_module (static)
 env_module (static)
 setenvif_module (static)
 version_module (static)
 mpm_prefork_module (static)
 http_module (static)
 mime_module (static)
 status_module (static)
 autoindex_module (static)
 asis_module (static)
 cgi_module (static)
 negotiation_module (static)
 dir_module (static)
 actions_module (static)
 userdir_module (static)
 alias_module (static)
 so_module (static)
 perl_module (shared)

I do not get here modules: deflate, headers, expires

What works (in httpd-2.2.15 directory):

cd ./modules/filters/
/home/ensembl_usr/local/apache2/bin/apxs -c mod_deflate.c
cp -i .libs/mod_deflate.so /home/ensembl_usr/local/apache2/modules/

cd ../metadata/
/home/ensembl_usr/local/apache2/bin/apxs -c mod_headers.c  
cp -i .libs/mod_headers.so /home/ensembl_usr/local/apache2/modules/


/home/ensembl_usr/local/apache2/bin/apxs -c mod_expires.c 
cp -i .libs/mod_expires.so /home/ensembl_usr/local/apache2/modules/

cd /home/ensembl_usr/local/ensembl/modules
ln -s /home/ensembl_usr/local/apache2/modules/*.so .

mod_per 4 apache2.x

http://perl.apache.org/download/index.html got mod_perl-2.0.4

cd mod_perl-2.0.4
perl Makefile.PL MP_APXS=/home/ensembl_usr/local/apache2/bin/apxs 
make
make test

#t/modules/apache_status.t ............... 1/15 # Failed test 14 in t/modules/apache_status.t at line 47
# Failed test 15 in t/modules/apache_status.t at line 47 fail #2
#t/modules/apache_status.t ............... Failed 2/15 subtests 

make install

Perl modules required by ENSEMBL

Assumes that you installed Perl in /home/ensembl_usr/local/ and got perl binary in /home/ensembl_usr/local/bin/

Check the list of modules here i.e: http://browser.1000genomes.org/info/docs/webcode/install/non-ensembl-code.html

There are several versions of this list of modules, but ultimately you may be missing several not listed modules, and you will get their names (one by one) after trying to start your ENSEMBL site.

Despite the advise of installing always the newest module versions there is one important exception: LWP. LWP version 5.812 is required by latest (2.57) ParallelUserAgent. This will be covered in a separate section of this page.

Also some modules do not install (at least on my machine) from perls CPAN shell. These may require installation by hand from sources (described later).

CPAN Shell

Easy things first:

export PATH=/home/ensembl_usr/local/bin/:$PATH
which perl
      # ~/local/bin/perl
perl -MCPAN -e shell
#<snip>
#commit: wrote '/home/ensembl_usr/local/lib/perl5/5.12.0/CPAN/Config.pm'
install Cache::Memcached 
        # Cache-Memcached-1.28.tar.gz
install CGI
	# CGI.pm-3.49.tar.gz
install CGI::Ajax
        # CGI-Ajax-0.707.tar.gz
install CGI::Session
        # CGI-Session-4.42.tar.gz
install Class::Accessor
        # Class::Accessor is up to date (0.34). // checked after installation of all modules
install Class::Data::Inheritable 
        # Class::Data::Inheritable is up to date (0.08). // checked after inst. of all modules
install Class::Std 
	# Class-Std-0.011.tar.gz
install	Class::DBI::Sweet
	# Class-DBI-Sweet-0.10.tar.gz
install Class::Std::Utils 
        # Class-Std-Utils-v0.0.3.tar.gz
install Compress::Zlib
	# Compress::Zlib is up to date (2.027).
install Compress::Raw::Zlib
        # Compress-Raw-Zlib-2.027.tar.gz
install SHLOMIF/Config-IniFiles-2.57.tar.gz
        #//  i  /Config::Inifiles/ lists 3 modules, this one is the only one which version is close to the one listed on 1000genomes.org web page (see above) 
install DBI
	#DBI-1.611.tar.gz
install DB_File
        # DB_File is up to date (1.820). // day 2, after installation of other modules
install Devel::StackTrace 
        # Devel-StackTrace-1.22.tar.gz
install GD
	#GD-2.45.tar.gz
install Data::UUID
	#Data-UUID-1.203.tar.gz
install Digest::MD5
	#Digest::MD5 is up to date (2.39).
install Exception::Class 
        # Exception-Class-1.30.tar.gz
install install Hash::Merge
	# Hash-Merge-0.12.tar.gz
install Storable
	#Storable is up to date (2.22).
install SOAP::Lite
        # SOAP-Lite-0.711.tar.gz
install XML::Parser 
	# XML::Parser is up to date (2.36).
install XML::Simple
	# XML-Simple-2.18.tar.gz
install Parse::RecDescent
	# Parse-RecDescent-1.965001.tar.gz
install	PDF::API2
	# PDF-API2-0.73.tar.gz
install Spreadsheet::WriteExcel	
	# Spreadsheet-WriteExcel-2.37.tar.gz
install OLE::Storage_Lite
	# OLE::Storage_Lite is up to date (0.19)
install Time::HiRes
	# Time-HiRes-1.9721.tar.gz
install HTML::Template
	# HTML-Template-2.9.tar.gz
install File::Temp 
	# File::Temp is up to date (0.22)
install	Mail::Mailer
	# MailTools-2.06.tar.gz
install Math::Bezier
	# Math-Bezier-0.01.tar.gz
install IO::String
	# IO-String-1.08.tar.gz
install Image::Size
	# Image-Size-3.221.tar.gz
install K/KM/KMACLEOD/libxml-perl-0.08.tar.gz 
        # // OK
install List::MoreUtils
        #List-MoreUtils-0.22.tar.gz
install Log::Log4perl
        # Log-Log4perl-1.28.tar.gz
install Number::Format
        # Number-Format-1.73.tar.gz
install DCONWAY/Parse-RecDescent-1.965001.tar.gz
        # // closest with ver. number from 1000genomes.org list
install S/SM/SMUELLER/PathTools-3.31.tar.gz 
        # // closest with ver. number from 1000genomes.org list
install Template::Plugin::Number::Format 
        # Template-Plugin-Number-Format-1.02.tar.gz
install Time::HiRes
        # Time-HiRes-1.9721.tar.gz
install XML::DOM
        # XML-DOM-1.44.tar.gz
install XML::RSS
        # XML-RSS-1.48.tar.gz
install Compress::Bzip2
	# Compress-Bzip2-2.09.tar.gz


These modules were missing when starting httpd with ENSEMBL's httpd.conf:

install BSD::Resource  
	# BSD-Resource-1.2904.tar.gz
install Sys::Hostname::Long
	# Sys-Hostname-Long-1.4.tar.gz
install JSON
	# JSON-2.21.tar.gz

From sources

  • DBD::mysql

Problem: requires MySQL (at least mysql client) on the same machine

    • install MySQL

mysql-5.1.46

./configure --prefix=/home/ensembl_usr/local/
make 
make check
make test

this is a long compile even on a fast machine.

    • DBD::mysql itself
cd DBD-mysql-4.014
perl Makefile.PL --with-mysql=/home/ensembl_usr/local/mysql/
make
make install

Not tested: for proper testing you have to have an access to a running MySQL instance

  • Bio::Das::Lite

===> problem in CPAN shell: install Bio::Das::Lite

depends on WWW::Curl , reports SZBALINT/WWW-Curl-4.11.tar.gz Running make install

 make test had returned bad status, won't install without force

going for source install

    • WWW::Curl

got: WWW-Curl-4.11

cd WWW-Curl-4.11/
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
#Failed 1/20 test programs. 3/177 subtests failed.
#make: *** [test_dynamic] Error 255

make install


    • Bio::Das::Lite
cd Bio-Das-Lite-2.03/
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
#Failed 18/22 test programs. 0/1 subtests failed.

make install

This one does not look good. A number of errors like "Bareword "CURLOPT_PROXYUSERNAME" not allowed while "strict subs" in use at lib/Bio/Das/Lite.pm line 861.". No solution at this point.


  • Template::Toolkit

Used by BioMart got Template-Toolkit-2.22

cd Template-Toolkit-2.22
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make
make test
#All tests successful.
make install


ParallelUserAgent

The most current version (2.57) has not been updated in years, and requires old (5.812) wersion of LWN.

  • git (in case you do not have it)

http://git-scm.com/ got git-1.7.1

./configure --prefix=/home/ensembl_usr/local/
make 
make test
make install
<pre>

* libwww  ver. 5.812

<pre>
mkdir libwww_old
cd libwww_old
git clone git://gitorious.org/libwww-perl/mainline.git
cd mainline
git checkout R5.812
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make 
make test
#local/httpsub.t      (Wstat: 512 Tests: 0 Failed: 0)
#  Non-zero exit status: 2
#  Parse errors: No plan found in TAP output
# <snip>
# Failed 1/33 test programs. 0/833 subtests failed.
  • ParallelUserAgent (itself)
export PERL5LIB=/home/ensembl_usr/local/lib/perl5/

wget http://search.cpan.org/CPAN/authors/id/M/MA/MARCLANG/ParallelUserAgent-2.57.tar.gz
tar xfvz ParallelUserAgent-2.57.tar.gz
cd ParallelUserAgent-2.57
perl Makefile.PL PREFIX=/home/ensembl_usr/local/
make 
make test
# All tests successful.
make install