InstallationSystemWiki/InstallationSystemCVS

From BRF-Software
Jump to navigation Jump to search

"Software" Documentation - Installationsystem - CVS usage

The installation system is designed to work CVS to delevelop and maintain components. It can be instructed to checkout components from a CVS repository and keep them in sync with it. This page describes how the installation system can be used together with the CVS repositories at the CeBiTec.

Table of Contents

Author: Burkhard Linke

Requirements

  • access to the CeBiTec network, e.g. unix account
  • membership in the "gendb" unix group at CeBiTec
  • CVS configured to access the repositories at the CeBiTec
  • a recent version of Perl (e.g. latest 5.8. build)
  • a recent version of CVS (1.11 or newer)
  • XML::DOM
  • dialog (optional, used for a more appealing user interaction)

The lists do not includes the requirements for the components itself! See the InstallationSystemWiki/Components page for information about the components and their requirements.

Setting up CVS correctly may require you to set the environment variables CVSROOT and CVS_RSH. Consult the CVS documentation or send a mail to the support desk.

Getting the installation system

The installation system itself is maintained in a CVS repository at the CeBiTec site. After verifying that your CVS access works check out the bioinfo/bridge_install repository from the CeBiTec CVS. This will only check out the CVS version of the installation system. Use the install.sh script to create a base installation system:

sh install.sh <some directory>

The directory will be created if not already existing and the script files that are part of the installation system will be adopted to its path.

Notes:

  • It's recommended not to check out CVS stuff in your home directory. Use a subdirectory instead.
  • The installation system is work in progress, so you may want to check for updates from time to time.
  • You can use the install script to overwrite an existing installation system; components and their configuration will not be affected
  • You CANNOT move the content of the installation directory to some other place. Some pathes are hardcoded in a number of perl scripts by the install.sh script.

Getting components

components are available as subdirectories within the CVS, located below the bioinfo root directory. They can be added to the installation system by using the add_cvs_repository that is available in the bin/ subdirectory of the installation system:

bin/add_cvs_repository -n <name> -v <version>

After a component has been installed, it needs to be activated with the activate_module script.

Notes:

  • Keep in mind that components have their own requirements like specific perl modules and other components. These requirements have to be met prior to installing a component.
  • The version argument is optional; it defaults to the CVS head branch of the component if not given.

Keeping components in sync

Checking out a component from the CVS retain the complete CVS management information. The subdirectories within the installation system are live and the usual CVS command may be used (e.g. cvs update, cvs add, cvs commit). You may need to ensure that the CVS access is configured properly before updating a CVS controlled directory (see Requirements above).

Updating component configuration

Changes in the CVS may require to update updating the configuration of components, e.g. when new configuration settings are available. You can reconfigure a component by invoking the reconfigure_module script in the bin subdirectory of the installation system.

Most changes in the CVS does not require updating the configuration. Nonetheless it may happen and we usually sent an email to our mailing lists to inform the developers.

Differences to production use

Among the different scripts that has to be used a number of further differences exists between the production and CVS usage of the installation system:

  • Components may provide boot scripts, e.g. for creating databases and preprocessing data. This scripts are not invoked within CVS installations.
  • Certain components store data in a subdirectory of the installation system. These data files are not under CVS control and not shared with other developers. This may result in errors if information about files are stored in other places, too (e.g. names of Glimmer models files are stored in the SQL database).
  • Newly installed components are not automatically activated; this has to be done manually with the activate_module script.
  • Use the developer's mailing list in case of questions and problems with a component.
  • Finally: in case of using a HEAD branch, keep in mind that things may be broken, behave strangly or do things you do not expect at all. It's the HEAD branch, afterall !

Example: Checking out GenDB

This example describes the necessary steps to install the GenDB core modules.

  1. get and install the installation system
  2. ensure that all requirements for the following components are met:
    • common
    • projectmanagement
    • wrapper
    • GOPArc
    • gendb
  3. install the components in the following order:
    • common
    • projectmanagement
    • wrapper
    • GOPArc
    • gendb
  4. start working with the GenDB scripts

TODO: - add SEED and the GenDB web interface