Project

General

Profile

Actions

Start with existing CentOS installation » History » Revision 39

« Previous | Revision 39/80 (diff) | Next »
Amber Herold, 03/15/2010 02:18 PM


Start with existing CentOS 5.3 64-bit installation

3 Download additional software

3.1 Install the additional package repositories

NOTE

There are several additional CentOS repositories that you can install.
These repositories provide additional packages, such as patented software (MP3 players),
closed source applications (Flash plugin, Adobe Acrobat Reader)
and lesser used packages (python numpy, Gnu Scientific Library).
But some repositories install packages over other packages,
which can cause problems and conflicts (ATrpms is bad at this). So I recommend only installing
EPEL and RPM Fusion. Read more here:
CentOS Additional Repositories

3.1.1 Extra Packages for Enterprise Linux (EPEL)

.Download repository rpm and install

$ sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/`uname -i`/epel-release-5-3.noarch.rpm

3.1.2 RPM Fusion

.Download repository rpms and install

$ sudo rpm -Uhv http://download1.rpmfusion.org/free/el/updates/testing/5/`uname -i`/rpmfusion-free-release-5-0.1.noarch.rpm
$ sudo rpm -Uvh http://download1.rpmfusion.org/nonfree/el/updates/testing/5/`uname -i`/rpmfusion-nonfree-release-5-0.1.noarch.rpm

3.2 Update current packages

.Update the updater to make life easier

$ sudo yum -y update yum

.Update all packages

$ sudo yum -y update

NOTE
Download was over 129 MB (in July 2009). If you have a slow internet connection you can setup presto/deltarpms, see this email]
You may want to restart your computer when this completes.

.Install Complete list of additional packages:

  • python tools: python-tools python-devel
  • general applications: subversion ImageMagick grace gnuplot python-matplotlib
  • Tilt Picker: wxPython numpy scipy python-imaging
  • FindEM: gcc-gfortran compat-gcc-34-g77
  • Ace 2: gcc-objc fftw3-devel gsl-devel
  • Sinedon: mysql mysql-server MySQL-python
  • DBEM: httpd php php-mysql phpMyAdmin
  • Xmipp MPI: gcc-c++ openmpi-devel libtiff-devel
  • MRC tools: php-devel gd-devel re2c fftw2-devel php-gd
  • UCSF Chimera imaging: xorg-x11-server-Xvfb
$ sudo yum -y install \
python-tools python-devel python-matplotlib \
subversion ImageMagick grace gnuplot \
wxPython numpy scipy python-imaging \
gcc-gfortran compat-gcc-34-g77 \
gcc-objc fftw3-devel gsl-devel \
mysql mysql-server MySQL-python \
httpd php php-mysql phpMyAdmin  \
gcc-c++ openmpi-devel libtiff-devel \
php-devel gd-devel re2c fftw2-devel php-gd \
xorg-x11-server-Xvfb

If you have an nVidia video card and setup RPM fusion, install the nVidia binary, will speed things up especially for UCSF Chimera

$ sudo yum -y install nvidia-x11-drv

.Clean up packages to save drive space

$ sudo yum clean all

.Re-index the hard drive, this will come in handy later

$ sudo updatedb

.Enable servers on reboot

$ sudo /sbin/chkconfig httpd on
$ sudo /sbin/chkconfig mysqld on

You can further configure this with the GUI and turn off unnecessary items

$ system-config-services

.Reboot the computer

$ sudo reboot

4 MRC PHP Extension Installation and Testing

4.1 Build the MRC module

Download php_mrc_src_1_5_1.tgz

cd to your php devel directory

> cd /usr/include/php/ext/
> mv [downloads]/php_mrc_src_1_5_1.tgz .

Untar the archive

> tar zxvf php_mrc_src_1_5_1.tgz
> cd mrc/

Make sure that GD and FFTW 3 devel libraries are installed

> phpize
> ./configure 
> make
> make install

4.2 Install MRC module

Check that mrc.so is in your php extension directory

> ls /usr/lib/php/extensions

You should see mrc.so listed.

Make sure that GD and FFTW 3 libraries are installed

  • edit your php configuration file php.ini to add "mrc.so" extension.
  • You might also increase the memory_limit field. It is set to 8M by default. The more the merrier!
  • 4kx4k float MRC image is about 64MB
    > vi /etc/php.ini
    
  • increase memory
    > memory_limit = 256M; Maximum amount of memory
    
  • Create the mrc.ini file
> cd /etc/php.d
vi mrc.ini
  • add the following lines
 ; Enable mrc extension module
 extension=mrc.so

NOTE: If PHP modules are already listed in PHP.ini do the following:

  • check extension_dir value
     extension_dir = /usr/lib64/php/extensions
    
  • add the following at the end of the [extension section]
 extension=mrc.so

Restart your webserver

/etc/init.d/apache2 restart

OR

/etc/init.d/httpd restart

4.3 Test the MRC module installation

Download this MRC file mymrc.mrc and the following 2 scripts into the same directory to test the PHP mrc extension.

Run the scripts with the following commands:
The expected results are shown below. If you get the same images, you've installed the extension properly.

> php -q ex1.php | display
  • gd module test result:
> php -q ex2.php | display
  • fftw module test result:

5 Compile and setup Appion python programs

Download Myami.
TODO: Place link to file here!

5.1 Compile FindEM

  • Goto appion/findem folder to make findem.exe
  • Compile the libraries and binary
$ make
  • Test findem.exe to see if it runs
$ make test

WARNING
Only if the first part fails, you must add the path to libg2c.so library file.
Otherwise skip to next section.

  • locate libg2c.so library file
$ ls /usr/lib/gcc/`uname -i`-redhat-linux/3.4.6/libg2c.so
$ locate libg2c.so
  • Edit Makefile with location of libg2c.so
$ nano Makefile
  • Example: EXLIBS=-L/usr/lib/gcc/i386-redhat-linux/3.4.6/ -lg2c
  • Re-compile

5.2 Compile Ace2

The 64 bit Ace2 binary is already available in the myami/bin directory.
Test it by changing directories to myami/bin and type the following commands:

$ ./ace2.exe -h
$ ./ace2correct.exe -h

Notice the help display.

If this does not work or you wish to compile it yourself follow the instructions here.
NOTE:
ace2 typically requires fftw 3.2 or greater. This is significantly faster than 3.1 (which is distributed with CentOS). 
There is a FFTW_WISDOM_ONLY flag in Image.m that can be commented in if you are using fftw 3.2 or greater.
*TODO: Can we have the make file detect which version is installed?*

* Goto myami/appion/ace2
* compile the libraries and binary
* test to see if program runs

<pre>
$ make
$ ./ace2.exe -h
$ ./ace2correct.exe -h
$ mv -v ./ace2*.exe ../bin
</pre>

5.3 Compile Radermacher module

  • Goto appion/radermacher
  • compile the libraries and binary
$ python ./setup.py build
  • install module globally
$ sudo python ./setup.py install
  • test installed module
$ python
>>> import radermacher
>>> <Ctrl-D>

5.4 Test Appion

  • Go into the appion directory
  • Add myami to PYTHONPATH if myami is built locally (in home directory)
    TODO: what does this mean?
$ export PYTHONPATH="/your-complete-path-to-myami:$PYTHONPATH" 
  • Add appion to PYTHONPATH
$ export PYTHONPATH="/your-complete-path-to-myami/appion:$PYTHONPATH" 

TODO: Consider moving appionlib so you only need to set one path.

  • Run the test script
$ ./check.sh

NOTE
You can ignore EMAN, MATLAB, and UCSF Chimera errors at this point


6 Setup MySQL (appiondata) databases

Refer to Setup MySQL databases

Configure MySQL

Edit the configuration file:

$ sudo nano /etc/my.cnf

Add or edit the following lines:

query_cache_type = 1
query_cache_size = 100M
query_cache_limit= 100M

Restart MySQL

$ sudo /sbin/service mysqld restart

Configure phpMyAdmin

Edit the phpMyAdmin config file:

$ sudo nano /etc/phpMyAdmin/config.inc.php

and change the following lines:

$cfg['Servers'][$i]['AllowRoot']     = FALSE;

Edit the phpMyAdmin apache config file:

$ sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

and change the following lines:

<Directory /usr/share/phpMyAdmin/>
   order deny,allow
   deny from all
   allow from 127.0.0.1
   allow from YOUR_IP_ADDRESS
</Directory>

7 Install webpages (appionweb)

Refer to Web server side installation

Install MRC Tools

Compile MRC tools

  • Go to your php devel directory and untar the archive
  • If unsure where it is, use info.php to find it under extension_dir
$ cd /usr/include/php/ext/
$ sudo mkdir mrc
$ sudo chmod 777 mrc
$ sudo chown $USER mrc
$ tar zxvf ~/php_mrc.tgz
$ cd mrc/
  • Compile and install the MRC module
$ phpize
$ ./configure 
$ make
$ sudo make install

Configure PHP for MRC Tools

  • Edit your php configuration file php.ini to add "mrc.so" extension.
$ sudo nano /etc/php.d/mrc.ini
  • add mrc.so to extensions
; Enable mrc extension module
extension=mrc.so

Configure PHP

  • increase the memory limit, EM images are big 64MB:
memory_limit = 256M; Maximum amount of memory
  • Turn error display on:
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
  • restart the webserver
$ sudo /sbin/service httpd restart

Install DBEM and project php source

Please consult the other Install guide

Configuration

configure apache

  • allow REMOTE_HOST lookups in apache
$ sudo nano /etc/httpd/conf/httpd.conf
  • turn HostnameLookups to On
HostnameLookups On
  • restart the webserver
$ sudo /sbin/service httpd restart

configure project_1_2, dbem_1_5_1, and dbem_1_5_1/processing

Please consult the other Install guide

Initialize database tables from the web tools

Please consult Create a test project and processing database

Potential problems

Firewall settings

You may need to configure your firewall to allow incoming HTTP (port 80) and MySQL (port 3306) traffic:

$ system-config-securitylevel

Security-enhanced linux

Security-enhanced linux may be preventing your files from loading. To fix this run the following command:

$ sudo /usr/bin/chcon -R -t httpd_sys_content_t /var/www/html/

see this website for more details on SELinux


8 Install external packages

Please follow individual package installation instruction provided with them

Compile Xmipp for OpenMPI

$ locate libmpi.so
/usr/lib/openmpi/1.2.7-gcc/lib/libmpi.so
  • Setup Xmipp to use openmpi by changing three lines in SConstruct
$ cp SConstruct SConstruct.orig
$ nano SConstruct
opts.Add('MPI_INCLUDE', 'MPI headers dir ', '/usr/lib/openmpi/1.2.7-gcc/include/')
opts.Add('MPI_LIBDIR', 'MPI libraries dir ', '/usr/lib/openmpi/1.2.7-gcc/lib/')
opts.Add('MPI_LIB', 'MPI library', 'mpi')
  • Compile
$ sudo mpi-selector --yes --system --set `rpm --qf '%{NAME}-%{VERSION}-gcc-%{ARCH}\n' -q openmpi`
$ export PATH=$PATH:/usr/lib/openmpi/1.2.7-gcc/bin
$ ./scons.configure

you should see the line:

* Checking for MPI ... yes
$ ./scons.compile

9 Install a PBS job submission system

You'll need to install a Portable Batch System for job submission, such as TORQUE . I know Torque comes with Fedora 10, but not CentOS.

  • An RPM is available in the EPEL testing section
$ sudo yum -y --enablerepo=epel-testing install torque

or another way to get packages

$ wget http://centos.karan.org/el5/extras/testing/`uname -i`/RPMS/torque-2.1.9-1.el5.kb.`uname -i`.rpm
$ sudo yum -y localinstall --nogpgcheck torque-2.1.9-1.el5.kb.`uname -i`.rpm
$ #sudo rpm -Uhv torque-2.1.9-1.el5.kb.`uname -i`.rpm

After installing torque it needs to be configured. Sorry, we have no documentation for configuring torque at this time. You may try http://www.clusterresources.com/products/torque-resource-manager.php

Updated by Amber Herold over 14 years ago · 39 revisions