Source tree compilation on Debian/Ubuntu

From genomewiki
Revision as of 17:17, 24 September 2013 by Max (talk | contribs)
Jump to navigationJump to search

These binaries can also be used to run a local UCSC genome browser mirror.

Please note the instructions and scripts in the source tree that can build the kent source tree on any Linux system: src/product

These commands compile the UCSC genome browser and all source tools. They have been tested on Debian Lenny (64 and 32bit), Ubuntu Maverick and Ubuntu 13.04. They will put all binaries in /usr/local, all cgi-bins in /usr/lib/cgi-bin and all html-like things into /var/www/genome.

In theory, once you have installed the samtools library, you can just copy-paste this script into a command line

# we need to be root to install packages and put stuff into /usr/local
su 
# install required packages from repository
# please not that these won't install the samtools library to handle bam files
apt-get install mysql-server-5.0 apache2 libmysqlclient15-dev libpng12-dev libssl-dev openssl mysql-client-5.5  mysql-client-core-5.5
# set variables for compilation
export MACHTYPE=$(uname -m)
export MYSQLINC=`mysql_config --include`
export MYSQLLIBS=`mysql_config --libs`

DIRS='SCRIPTS=/usr/local/bin CGI_BIN=/usr/lib/cgi-bin DOCUMENTROOT=/var/www/genome BINDIR=/usr/local/bin'
# this does not seem to be necessary anymore
#ENCODE_PIPELINE_BIN=/usr/local/bin'

# download
cd /usr/local
wget http://hgdownload.cse.ucsc.edu/admin/jksrc.zip
unzip jksrc.zip
mkdir -p /var/www/genome/

# compile libraries
cd kent/src/lib
make  

cd ../jkOwnLib
make 

# compile browser
cd ..
make $DIRS

# set permissions
cd /home/data/www
chown apache:apache -R *

Add the parameter HG_WARN=-w to DIRS if you don't want the compilation to stop on error messages. Dirty, but it works. :-)


Run a genome browser mirror on your local machine

I prefer to place the CGIs in the same location where UCSC has them, that's /usr/local/apache. This path does not conform to Ubuntu's specifications but has the advantage that we don't need to change any make variable in the UCSC tree.

 sudo apt-get install ptrace apache2
 sudo mkdir -p /usr/local/apache/htdocs /usr/local/apache/cgi-bin 
 sudo mkdir /usr/local/apache/trash
 sudo 
 # apache needs to be able to create images
 sudo chown www-data:www-data /usr/local/apache/trash
 # the cgis create links to images in /trash
 cd /usr/local/apache/htdocs 
 ln -s ../trash
 # setup the custom trash dir in the same way
 sudo mkdir -p /usr/local/apache/trash/customTrash
 sudo chown www-data:www-data /usr/local/apache/trash/customTrash
 # make cgi-bin writable by ourselves
 chown $USER:$USER /usr/local/apache/cgi-bin
 # setup apache
 sudo a2enmod include
 sudo vim /etc/apache2/sites-enabled/000-default

Paste these lines (use the vim command :set paste to easier pasting) and remove the old ones:

      DocumentRoot /usr/local/apache/htdocs
       <Directory />
               Options FollowSymLinks +Includes
               XBitHack on
               AllowOverride None
       </Directory>
       ScriptAlias /cgi-bin /usr/local/apache/cgi-bin
       <Directory "/usr/local/apache/cgi-bin">
               XBitHack on
               AllowOverride None
               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +Includes FollowSymLinks
               Order allow,deny
               Allow from all
       </Directory>
 sudo service apache2 restart
 mysql -u root -p (you chose the password during installation of the package)
 create database customTrash
 create database hgcentral
 quit
 cd /usr/local/apache/cgi-bin
 wget 'http://genome-source.cse.ucsc.edu/gitweb/?p=kent.git;a=blob_plain;f=src/product/ex.hg.conf;hb=HEAD' -O hg.conf
 vim hg.conf

Set the mysql connection to the public mysql server:

 db.host=genome-mysql.cse.ucsc.edu
 db.user=genomep
 db.password=password
 customTracks.host=localhost
 customTracks.user=root
 customTracks.password=<enter the password you defined during mysql installation here>
 customTracks.useAll=yes
 customTracks.tmpdir=/usr/local/apache/trash/customTrash
 central.db=hgcentral
 central.host=localhost
 central.user=root
 central.password=<your password again>
 central.domain=<you internet domain>

Now compile everything:

 # set variables
 export MYSQLLIBS="-lmysqlclient -lz"
 export MACHTYPE=$(uname -m)
 export MYSQLINC=/usr/include/mysql
 cd ~/kent
 make alpha

Download Hiram's install scripts to some place... how?... and run them.