GENESIS: Documentation

Related Documentation:

GENESIS Software Dependencies

GENESIS-3 builds smoothly and without problems on most current operating systems provided all software dependencies are installed (see developer installation documentation). This page summarizes the dependencies required to build GENESIS-3. It also provides details about known problems on some operating systems.

Software Dependencies for User Installation

Generally, there should be no software dependencies or configuration requirements for installing GENESIS as a user (c.f. a developer, see below).

Software Dependencies for Developer Installation

This is a general list of dependencies for configuring a computer for GENESIS software development. Also look at the list of Tested Operating Systems to see what distributions have actually been tested.

Most of the required programs, libraries and modules are available as packages specific for your Operating System. This is the most convenient way to install them.

Required Programs

Required Libraries

This section lists some libraries required by GENESIS-3 in order to compile from source or do development. Lists are separated by operating system.

Libraries for Ubuntu

To install these packages use the apt-get command via the command line, or the synaptic package manager.

Libraries for Fedora

To install packages in Fedora use the yum utility from the command line. Since yum repositories typically contain different versions of the same package for various architectures, you must know your machines architecture type and insert it place of ”arch” in the package name. The usual architecture types are x86_64, i586 and i686.

Required Perl Modules

The following Perl modules are required. If you are using Linux, they are likely available as packages for your Linux distribution or vendor.

Note about Inline::Python

The Perl Inline::Python is compiled against the current installed version of Python. If you upgrade Python, then the Inline::Python module must be updated as well. This can be done via CPAN as before, only now, since the module has already been installed you may get this message:

Inline::Python is up to date (0.36).

In this case you may have to ”force” the installation of the module on CPAN like so:

cpan[6]> force install Inline::Python

If there are still old temp files in the CPAN .build directory, this may still give an error and say that it is already installed. In that case there is a source tarball for Inline-Python-0.36 available in the contrib directory of the Developer Package (^ /neurospaces_project/developer/source/snapshots/0/contrib/). Unzip the Inline-Python-0.36.tar.gz tarball with the tar command:

tar -zxvf Inline-Python-0.36.tar.gz

Change directories into Inline-Python-0.36 directory and then start the build process my typing:

perl Makefile.PL

If CPAN proceeded without an ”up to date” message you should wind up at this point, same as starting the make from the tarball. If there is more than one Python executable in your path the next line is important. The Maker will prompt you for which Python to build against:

Found these python executables on your PATH:  
1. /Library/Frameworks/Python.framework/Versions/2.6/bin/python  
2. /Library/Frameworks/Python.framework/Versions/Current/bin/python  
4. /usr/bin/python  
5. /usr/local/bin/python  
Use which? [1]

You should check to see which is the default Python that is called from your command line by performing:

which python

It will print out the first Python that is in your path. If the most recent version of Python on your machine is not appearing, then prefix the most recent installation path to your PATH environment variable by a line similar to this in your .bashrc (or .profile if on Mac OSX):

PATH="/Path/To/Most/Recent/Python/bin:${PATH}"  
export PATH

After selecting the Python to build against, the Maker will create a Makefile. From this point you can build and install:

make  
sudo make install

If you wish to check if the module is functioning properly there is a test script in the contrib directory called pythontest. Running this script will print out some information about the Python environment:

The Inline Python caller is:  /usr/bin/perl  
The Inline Python caller should be some derivative of perl, since it is being called via the perl Inline::Python module  
 
Python version is  2.6.5 (r265:79359, Mar 24 2010, 01:32:55)  
[GCC 4.0.1 (Apple Inc. build 5493)]  
 
Python path is:  
[’/Users/Abominous/neurospaces_project/developer/source/snapshots/0/contrib’, ’/usr/local/glue/swig/python’, ’/usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.6/site-packages’, ’/usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.6/site-packages/wx-2.8-mac-unicode’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload’, ’/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages’, ’/usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.6’, ’/usr/local/glue/swig/python’]  
 
The Python Path should match up with the proper python version of the executable.  
 
This executable path /usr/bin  
 
Performing an import check of installed GENESIS3 Python modules:  
 
Done with Python check.

If the module is functioning properly then the Inline Python caller should be your installation of Perl, NOT your installation of Python. Also check to see that the directories for Python modules from the Python path match up with your current Python version number. Again, your ”executable path” should be the path to your Perl executable. The final check it performs is a module check of all of the installed GENESIS3 Python modules, giving a message if one is not installed or not in your path.

Trouble Shooting

Periodically the build of a Perl module can fail and requires a workaround to get it installed. A common error that occurs is a failure to produce a Makefile as in this example with Data::Utilities :

Checking if your kit is complete...  
Looks good  
Writing Makefile for Data::Utilities  
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/5.10.0/CPAN.pm line 7652.  
Alert: no Build file available for ’make ’ in cwd[/root/.cpan/build/Data-Utilities-0.04-MT2keD]. Danger, Will Robinson!  
Can’t exec "./Build": No such file or directory at /usr/lib/perl5/5.10.0/CPAN.pm line 7698.  
  CORNELIS/Data-Utilities-0.04.tar.gz  
  ./Build -- NOT OK  
Running Build test  
  Can’t test without successful make  
Running Build install  
  Make had returned bad status, install seems impossible  
Failed during this command:  
 CORNELIS/Data-Utilities-0.04.tar.gz          : make NO

In the event this happens it’s often possible to manually build the module by entering the package directory and creating the Makefile via the module’s Perl script. As shown in the output, CPAN downloaded and unzipped the package to the directory /root/.cpan/build/Data-Utilities-0.04-MT2keD. So to manually build the Makefile and module we perform this series of commands:

cd /root/.cpan/build/Data-Utilities-0.04-MT2keD

Now create the Makefile:

perl Makefile.PL

At this point a Makefile will be present, all that needs to be done is to build and install:

make  
sudo make install

The module should now be in your Perl library.