SALOME Installation Wizard Help 

updated for the version 2.2.6


Installing products with the Installation Wizard

You can run the Installation Wizard in two modes. It's root directory contains python script runInstall.py:

[ python ] runInstall [ -g | b ] [ -f <xml-file> ] [ -t <target-dir> ] [ -tmp <tmp-dir> ]

-g
         Runs the Installation Wizard in the GUI mode. In this case only <xml-file> key is taken into account. This option is used by default.
-b
         Runs the Installation Wizard in the batch mode.
-f <xml-file>
         The configuration file to be used by the Installation Wizard.  If this parameter is missed then the script tries to define the Red Hat version and uses corresponding xml file. For examle, for the Red Hat 8.0 config_RedHat_8.0.xml  file is supposed to be used by default. If the appropriate file is not found, config.xml is used by default.
-t <target-dir>
         The target directory, SALOME products to be installed to. If used, overloads target directory, given in the configuration xml file.
-tmp <tmp-dir>
         The directory, which is used to contain temporary files.  If used, overloads temporary directory, given in the configuration xml file.
-h
         Prints help information.

So, to run the Installation Wizard in the GUI mode, just type runInstall.

The installation procedure can support some different Linux platforms and various number of products. Currently the basic target platform is Linux RedHat 8.0. From SALOME version 2.2.4 Installation Wizard also supports Linux Mandrake 10.1.
The using of configuration xml files gives flexible way to modify the list of products to be installed by the Installation Wizard without changing program's source code. Just create your own configuration file and implement installation scripts for products you want to be provided by Wizard. See modifying XML configuration file and implementing installation scripts for the new products for more information.

The Installation Wizard was built with using of the Qt  library. The program contains several pages. To navigate between pages use "Next" and "Back" buttons in the lower part of the wizard window. "Cancel" button closes dialog window and quits the installation procedure. To invoke this help information click "Help" button.

Skip the first "Introduction" page by pressing "Next" button.

In the second page you are proposed to enter the target directory where all selected products will be installed to. You can also press "Browse..." button and choose the folder for installation using standard Qt browse directory dialog box.
If the directory you want to install products does not exist you will be prompted to confirm directory creation. If you type wrong directory path, or if you have no permission for the directory you use, the corresponding message box will raise.

The Installation Wizard has two modes of the installation: basic and advanced. In the basic mode it is necessary just to enter target directory. If you want to use advanced mode, click "More..." button.

In the advanced mode you have the possibility to select products to be installed (see Fig.1 ). Each product can have several options of installation: you have a possibility to use native products, install already precompiled binaries, build product from the sources or not install it at all. Possible options and default choice are provided by the configuration file. You can mark the products, you want to install, by clicking the corresponding radiobuttons in the list view in the left part of the page. Note that some products can be installed only together with other products (or these prerequisite products should be already installed on your computer). The installation procedure has a special feature to automatically mark these products in the list view. For example, in order to install pyqt it's necessary to have gcc, python, qt and sip installed. Therefore all these products will be marked when you check on pyqt. This feature can be switched off by clicking "Auto set prerequisites products" checkbox. Turn on this checkbox if you want all pre-requisite products to be automatically checked when you select some product to be installed. Turn off this checkbox if you want to disable this feature.

Special button in the right part of the page - "Unselect All" - allows to reset quickly all products to the "not install" state.

If you want to use native products (for example, for Linux Red Hat 8.0 these are gcc, tcl, Python, Qt, Sip and PyQt), select "use native" option.

There are also two checkboxes on this page: "SALOME sources" and "SALOME binaries". These three-state checkboxes allow quick selecting/unselecting SALOME packages for the installation.

The box at the right side of the page displays the information about currently highlighted product: name, version, short description (if provided), required disk space, temporary files disk space, list of prerequisites and user choice.


Figure 1: "Installation settings" page in the advanced mode

The "Total disk space required:" field displays how much disk space on the hard drive is required for installation of selected products.
Note: Please, take into account that displayed amount of required disk space is approximate and may differ when you install products on your hard drive.

The installation procedure uses a special directory to store temporary files. The "Space for temporary files:" field shows the information about required disk space on the hard drive for extracting and compiling of the selected products. You can change the default directory - just type path to the folder you want to use or click on the corresponding "Browse..." button.

The installation procedure also checks available disk space on the selected directories according to the products selected. If there is no enough disk space on your hard drive you will see the corresponding error message box.

Note: Unfortunately, the configure procedure has a very annoying bug under Linux platform. The directory should be obligatory entered without spaces. For example, the configure procedure for gcc won't work if you pass the following parameter: --prefix="/New Folder 1". Therefore you are strongly recommended not to use directory names containing spaces.

To proceed further click "Next" button. At this moment program will make some tests to check installation settings: if there is enough disk space on the hard drive, if native products are preinstalled, dependencies (prerequisites) for each product you have selected to be  installed. If any test fails you will see corresponding warning message box. Otherwise wizard will follow to the next page:


Figure 2: "Check your choice" page

This page summarizes the installation settings you've made on the previous pages. You can check again your choice to change it if necessary.
When you are sure that everything is OK, press "Next" button to follow to the next page.


Figure 3: "Installation progress" page

To start installation of the selected products click "Start" button. It launches the shell installation script and you will be able to see the output of the script in the topmost dialog's frame. If any errors occur during the installation the progress the corresponding messages will be printed to the log grame window in the bold red font.

The "Installation Status" frame window shows you the progress of installation. It contains a list of all selected products with brief descriptions. "Waiting" description means that installation of this product have not started yet. Currently installing product is marked as "Processing". All installed products have "Completed" description.

You can abort installation and close the installation procedure using "Cancel" button. It sends the signal "SIGTERM" to the shell script. The script has a signal handler and will try to clear all temporary files. The process of removing temporary files can take some time, so the installation wizard will wait 3 seconds before closing.

At the end of installation (all selected products have been installed successfully) you can go back to the previous pages to start a new installation or click "Next" button to go the Readme page:


Figure 4: "Finish installation" page

In this page you can read important information about the Instalation Wizard itself and some hints: how to run and test SALOME or how to build SALOME from the sources. This is the contents of the README file which you can find in the root directory of the Installation Wizard.
You can also launch SALOME Desktop from this page by clicking "Launch SALOME" button.

During the process of installation the script creates some environment files to simplify procedure of launching SALOME. These shell scripts set all necessary environment variables for all products you have installed. To learn how installation scripts collects the environment, see  here. These files are: salome.csh + salome.sh in the KERNEL module sources and KERNEL module binaries root directories and env_products.csh + env_products.sh in the target directory.


Notes on check products version procedure

Unfortunately under Linux platform there is no exact algorithm to identify the product's version. The table below contains the information relating to checking preinstalled products for the Linux RedHat 8.0 platform.
 
Product
Algorithm of checking
Preliminary steps before launching
of installation procedure
Notes
gcc 3.2 ver=`gcc -dumpversion`
-
ver should be 3.2.
It is recommended to use native gcc on Linux RedHat 8.0
tcl 8.3 existence of TCLHOME
existence of tclsh8.3
existence of wish8.3
existence of libtcl8.3.so
existence of libtk8.3.so
existence of libtclx8.3.so
existence of libtkx8.3.so
set TCLHOME if you have preinstalled version of tcl.
set LD_LIBRARY_PATH on a directory where libs can be found.
It is recommended to use native tcl/tk on Linux RedHat 8.0
boost 1.30.2
ver=`egrep 'BOOST_VERSION [0-9]+' ${BOOSTDIR}/boost/version.hpp | sed 's/.*BOOST_VERSION \([0-9]\+\)/\1/g'`
set BOOSTDIR if you have preinstalled version of boost
It is impossible to use native BOOST and to install BOOST from binaries.
Open CASCADE 5.2
existence of CASROOT environment variable
ver_major=`grep "!define OCC_VERSION_MAJOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
ver_minor=`grep "!define OCC_VERSION_MINOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
ver="$ver_major.$ver_minor"
set CASROOT if you have preinstalled version of Open CASCADE CASCADE's Standard_Version.hxx file provides version information.
Patch for Open CASCADE 5.2
Open CASCADE 5.2 provided with the Installation Wizard already includes the patch, necessary for SALOME 2.2.x. In addition the Installation Wizard provides the sources of a Open CASCADE patch which can be applied to original Open CASCADE 5.2 sources before its compilation.
Python 2.2.1 existence of PYTHONHOME
isPython=`which python`
ver=`python -V`
set PYTHONHOME to root Python folder
set PATH on a directory where python can be found
Python should exist and ver should be equal to 2.2.1
It is recommended to use native Python on Linux RedHat 8.0
Mesa 3.4.2 existence of libGL.so.1.2.030402 set LD_LIBRARY_PATH on a directory where libGL.so.1.2.030402 can be found You have a possibility to build products (vtk & qt) with Mesa drivers from the package supplied with this installation procedure or to use OpenGL drivers installed on your computer locally. This check procedure concerns only supplied Mesa driver.
Swig 1.3.17 isSwig=`which swig`
ver=`swig -version`
ver=`echo $ver | awk '{print $3}'`
set PATH on a directory where swig can be found Swig should exist and ver should be equal to 1.3.17
Qt 3.0.5 existence of QTDIR
ver=`grep "QT_VERSION_STR" ${QTDIR}/include/qglobal.h | sed -e 's%^#define QT_VERSION_STR\([[:space:]]*\)%%g' -e 's%\"%%g'`
set QTDIR if you have preinstalled version of qt Qt's qglobal.h file provides version information: ver should be 3.0.5.
You should set MESA_HOME only if you have preinstalled version of Mesa 3.4.2.
It is recommended to use native Qt on Linux RedHat 8.0
Qwt 0.4.1 existence of QWTHOME
existence of libqwt.so.0.4.1
set  QWTHOME if you have preinstalled version of qwt We try to find libqwt.so.0.4.1 in the ${QWTHOME}/lib folder. 
Hdf 5-1.4.4 existence of HDF5HOME
existence of libhdf5.so.0.0.0
existence of libhdf5.settings
ver=`grep "HDF5 Version:" ${HDF5HOME}/lib/libhdf5.settings | awk '{print $3}'`
set HDF5HOME if you have preinstalled version of hdf We try to find libhdf5.so.0.0.0 and libhdf5.settings in ${HDF5HOME}/lib folder.
File libhdf5.settings should contain the following entry:
HDF5 Version: 1.4.4
Med 2.2.2 existence of MED2HOME
existence of libmed.so.1.0.1
set MED2HOME if you have preinstalled version of med Unfortunately we can't check version number.
We try to find libmed.so.1.0.1 in ${MED2HOME}/lib folder.
If you have problem with preinstalled version of med reinstall it.
Vtk 4.2 existence of VTKHOME
existence of libvtkCommon.so
set VTKHOME if you have preinstalled version of vtk Unfortunately we can't check the version number.
We try to find libvtkCommon.so in ${VTKHOME}/lib/vtk folder.
If you have problem with preinstalled version of vtk reinstall it.
Netgen 4.3
existence of NETGENROOT
set NETGENROOT if you have preinstalled version of Netgen.
Unfortunarely we can't find anything about netgen version.
We just check if NETGENROOT environment varible is set.
OmniORB 3.0.5,
OmniORBpy 1.5,
OmniNotify 1.2
existence of OMNIORBDIR
existence of libomniORB3.so.0.5
existence of _omnipymodule.so.0.5
existence of libCOSNotify3.so.0.5
existence of notifd
existence of THIS_IS_omniORB_3_0_5
existence of THIS_IS_omniNotify_1_2
existence of THIS_IS_OMNIORBPY_1_5
set OMNIORBDIR if you have preinstalled version of omni We try to find libomniORB3.so.0.5, _omnipymodule.so.0.5 and libCOSNotify3.so.0.5 in ${OMNIORBDIR}/lib/i586_linux_2.0_glibc2.1 folder.
We try to find notifd in ${OMNIORBDIR}/bin/i586_linux_2.0_glibc2.1 folder.
Additional checking - omni add special files THIS_IS_...
We try to find THIS_IS_omniORB_3_0_5 in ${OMNIORBDIR} folder.
We try to find THIS_IS_omniNotify_1_2 in ${OMNIORBDIR}/src/services/omniNotify.
We try to find THIS_IS_OMNIORBPY_1_5 in ${OMNIORBDIR}/src/lib/omniORBpy folder.
Numeric 22.0 ver=`python -c 'import Numeric; print Numeric.__version__' 2>/dev/null` set PYTHONHOME if you have preinstalled version of Numeric package If you have problem with preinstalled version of numeric 22.0 reinstall it.
Sip 3.3.2 existence of SIPDIR
sip_ver=`${SIPDIR}/sip -V | awk '{print $1}'`
set SIPDIR to directory where you have sip preinstalled Searching for the sip binary is performed in the folder pointed by the $SIPDIR variable if it is set and then by using $PATH variable.
It is recommended to use native Sip on Linux RedHat 8.0
PyQt 3.3.2 existence of PYQTDIR
existence of libqtxmlcmodule.so.1.0.0
set PYQTDIR to directory where you have sip preinstalled Unfortunately we can't check the version number.
We try to find libqtxmlcmodule.so.1.0.0 in $PYQTDIR folder if you set PYQTDIR, otherwise searching is done using $LD_LIBRARY_PATH .
If you have problem with preinstalled version of PyQt 3.3.2 reinstall it.
It is recommended to use native PyQt on Linux RedHat 8.0
HappyDoc 2.1 existence of happydoc
ver=`happydoc | grep "HappyDoc version 2.1"`
set PATH variable to the directory where you have HappyDoc installed. We try to find happydoc in $PATH.
ver should not be empty.
This product is not obligatory. It was added only for your comfort.
Doxygen 1.3-rc2 existence of doxygen
existence of doxysearch
existence of doxytag
existence of doxywizard
ver=`doxygen --version`
set QTDIR if you have preinstalled version of qt
set PATH on a directory where doxygen, doxysearch, doxytag and doxywizard can be found
doxygen, doxysearch, doxytag, doxywizard binaries should exist; ver should be 1.3-rc2.
It's necessary to have compiled Qt in order to build doxywizard.
If you have problem with preinstalled version of doxygen 1.3-rc2 reinstall it.
This product is not obligatory. It was added only for your comfort.
Graphviz 1.9 existence of dot binary.
ver=`dot -V 2>&1 | awk '{print $3}'`
add GraphViz's bin directory to the PATH environment variable We try to find dot program in the $PATH.
MODULE binaries
(MODULE=KERNEL,GEOM, ...)
existence of MODULE_ROOT_DIR
existence of VERSION file
ver=`cat $MODULE_ROOT_DIR/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]'`
set MODULE_ROOT_DIR if you have preinstalled binaries of MODULE version 2.2.4 MODULE binaries should exist and ver should be equal to 2.2.4
MODULE sources
(MODULE=KERNEL,GEOM, ...)
existence of MODULE_SRC_DIR
existence of VERSION file
ver=`cat $MODULE_SRC/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]'`
set MODULE_SRC_DIR if you have preinstalled sources of MODULE version 2.2.4 MODULE sources should exist and ver should be equal to 2.2.4

Note: For native products installation procedure sets proper environment variables itself, and you do not need to set such variables like, e.g. TCLHOME or PYTHONHOME.
If you have native products installed to different from default directories (not /usr/bin, /usr/lib...), it is recommended to follow above description. Or you should set properly $PATH and $LD_LIBRARY_PATH variables before starting Installation Wizard. Otherwise installation script will fail to find preinstalled products.

Note: For some native products (e.g. gcc, Python) the rules of version checking are not so strict as described in the table. Only major and minor numbers of version should coincide with prerequisite. Release number can be larger. It is done for making a possibility to use native products for newer versions of Red Hat (for example, Linux Red Hat 9 includes native gcc 3.2.2 installation). If native product has version number larger than that required by installation procedure, you will be prompted by the warning message like this: "You have newer version of gcc installed on your computer than that is required (3.2). Continue?". You can press "Yes" button to procede with the installation but in this case you should be aware of what you are doing. SALOME binaries (including other products) are compiled with the prerequisites from the list and most likely can not be run successfully if this products are not found. This can be only helpful if you intend to build all products from sources.


Pick up the environment

Please, read carefully the following information. This section describes how the installation procedure collects environment.

After installing each product shell script creates in the product root folder special environment file. The name of the file is generated from the name of product by the following scheme: env_<product_name>.sh. This file includes all necessary product settings. For example for Vtk the file is env_Vtk.sh. Environment files allows to pick up all environment settings which are necessary to build and launch SALOME. When installing SALOME sources and/or binaries, installation procedure picks up all the settings files and generate two scripts: salome.sh and salome.csh for sh and csh correspondingly. Such approach helps to save time when reinstalling products and you may not to care about setting all environment variables manually to build/launch SALOME. What you need is just to use one of these scripts.

This concerns also those products which are not currently installed. For example, you install some SALOME binaries to the directory where you have previously installed other products.  Installation procedure still tries to collect environment files from the target directory if it find necessary products there. If some product is not found in the target directory the corresponding section of salome.sh/salome.csh files will be skipped.
For native products (gcc, tcl, python, qt, sip, pyqt for RedHat-8.0) instal script tries to find them using $PATH / $LD_LIBRARY_PATH variables and then in the system default directories (/usr/bin, /usr/lib etc., depending on the product).

In any case you may edit salome.* files after installation procedure finishes, as you want.


Modifying XML configuration file

You can create your own configuration. Installation Wizard then can take it as command line argument to provide list of products you want to install with it. The list of products and some another settings for the Installation Wizard are provided in xml file. The default file which Installation Wizard looks for if no command line arguments ar given, is config.xml. This section describes the format of configuration file.
Xml tags are in bold blue, optional sections/tags are in brackets.

<document>
    [<config [version=<install_wizard_version>]
                  [caption=<install_wizard_caption>]
                  [copyright=<install_wizard_copyright>]
                  [license=<install_wizard_license_info>]
                  [os=<target_platform>]/>]
    [<path [targetdir=<target_directory>]
                [tempdir=<temp_directory>]/>]
    [<product name=<product_name>
                      version=<product_version>
                      [context=<product_context>]
                      [description=<product_description>]
                      install=<installation_mode>
                      supported=<supported_installation_modes>
                      disable=<disable_flag>
                      [pickupenv=<pickup_env_flag>]

                      dependancies=<list_of_prerequisites>
 
                      installdiskspace=<install_disk_space>

                      temporarydiskspace=<tmp_disk_space>

                      script=<installation_script_name>
/>]
    [
<product ... />]
    .
..
</document>

<config> section

This is optional section - contains general information Installation Wizard itself.

<path> section

This is optional section - contains default directories.

<product> section

This section describes product to be installed with the Installation Wizard. All tags are obligatory. Products appears in the products tree and are installed in the order they are described in the configuration file. It is recommended to insert native products at the top of the list before all other products. Note: If you add new products to be installed with Installation Wizard, you should also provide installation script for this product. See next section for more details.

Implementing installation scripts for the new products

When you want some product to be installed with the Installation Wizard, you should add it's description it in the configuration file and create bash installation script, following described in this section rules.
There are some obligatory functions to be provided in this installation script. These functions are automatically called by master installation script or/and GUI shell when it is necessary.
File common.sh contains some service functions which can be used in your installation script, like make_env(), make_dir(), try_existing(), sort_path(), find_in_path(), etc. The calling signature of the product installation script is following:
<product_script_name> <function_name> <temp_folder> <products_directory> <target_directory> <dependancies> <product_name>

where
<product_script_name> - installation script name (described in configuration xml file);
<function_name> - the name of function, corresponding to the selected installation mode: try_native, install_source, install_binary or try_preinstalled;
<temp_folder> - temporary files directory;
<products_directory> - directory where the sources/binaries package can be found. You should provide sources package in the <Install_Wizard_root_directory>/Products/SOURCES directory and binaries package  in the <InstallWizard_root_directory>/Products/BINARIES/<os_version>, where <os_version> is target platform description, which appears in the corresponding section of the configuration xml file.
<target_directory> - root target directory where product should be installed to;
<dependancies> - single-quoted list of prerequisite products, separated by space;
<product_name> - product name itself.

Example:
med-2.2.2.sh install_binary /tmp/work ./Products/BINARIES/RedHat8.0 /usr/salome 'gcc Hdf' med

Copy created script into the <Install_Wizard_root_directory>/config_files sub-directory where all installation scripts are stored. Installation Wizard will automatically search and call your script during the installation procedure.