Installation of Asterias or any of its components still requires quite a bit of manual configuration, mainly because of paths, IPs of servers, and LAM/MPI. When the Pylons version is available as non-alpha, all of this will be a lot simpler. For now you need to pay attention to several issues. Please, before you blame us for having such a messy setup, just consider a few issues: a) this project has grown incrementally, so many things were tried and, quite logically, were tried on our machines (with our IPs, paths, etc); b) soon a Pylons-based installer will be available that will make all this easier and, in fact, a bunch of files here are taken from the "in the works" Pylons installer code; c) in the meantime, the main value of all the additional code here is not to provide you, a savy sys admin, with a "install.exe", but rather to show you how we did it, so you can improve it, get ideas, etc. Ideally, you will want to get back to us, and get involved in the project :-). License and copying =================== This code is licensed under the Affero Public license. The license is included in this directory. All of the code here, except for the files buryPom.py and pomelo_run.py, is copyright (C), 2004-2006 by Ramon Diaz-Uriarte . The files pomelo_run.py and buryPom.py are copyright, (C), 2004-2006, Edward R. Morrissey. LAM/MPI ======== We use a scheme where a new LAM/MPI universe is created for every run, thus preventing any run that goes wild from affecting other runs. As well, this allows to add and remove nodes from the computing cluster, because the LAM universe is created with the functional nodes available at the moment the application is started. Those are the good news. The bad news is that all of these has been done using a bunch of configuration files. Examples you can use and adapt follow. Of course, you also need LAM/MPI working. LAM/MPI -------- Needed for the parallel computing. Get it from http://www.lam-mpi.org/, although your Linux distribution is likely to have LAM/MPI packages/binaries (in Debian you need lam-runtime, lam4-dev and lam4c2 or equivalent ---the shared libraries). [We will eventually move to Open MPI, but lots of our code depends on lamboot/lamhalt created/destroyed universes, and analogous commands are not yet available for Open MPI]. tryRrun.py ----------- Tries to start an R run. All of the cgis call it. It tries to set up an MPI universe, and tries a number of times till it either succeeds or it fails. If the later, and error is reported. buryThem.py and kill* ---------------------- Tries to sanitize the environment (get rid of old, orphaned, R and lamd processes) before seting up the new MPI universe. delete_old_dirs ---------------- As it says, deletes old temporary directories. We run it as a cron job by www-data every two hours. (ej., 30 */2 * * * /http/mpi.log/delete_old_dirs.py) checkMPIdaemon.py ------------------ It checks the servers are up, and can be used for the MPI universes. If not, the appropriate lamb-host*.def files are changed, so that tryRrun and similar never try to create a universe with unsitable machines. If you configure it appropriately, you will be emailed about server failure. generate_defs.py ----------------- How do we create MPI universes? We use lamb-host*.def files. And how are those created? Using this script. asterias_config2* ----------------- These files are work in progress for the Pylons-based installer. But they offer hints for how to get the above file to be (semi)automagically configured. In particular, some of the above files read settings from asterias_config2.ini. The asterias_config2.py is the Python script in charge of reading the ini, and setting up the correct settings in the rest of the files. By looking at these files, you can tweak them by hand, Paths in Python code ===================== There might be hard-coded absolute paths in the Python code. Adapt them to your setup. R package dependencies ======================= There are many dependencies on R and BioC packages. Actually, we don't use those many other packages directly, but specially many BioC packages do depend on a whole bunch of others. The script "install.order.sh" might be of some help (for multimachine installation I just wget the packages to one central location; copy that to all machines, and execute the shell script). Of course, you need to have install BioConductor _before_ using "install.order.sh". Additional utilities ===================== counterApps and counterApplications ------------------------------------ As they say, the update counters of the applications.