HowToInstallRSPerl: Difference between revisions

From BRF-Software
Jump to navigation Jump to search
imported>MichaelDondrup
No edit summary
m (24 revisions)
 
(11 intermediate revisions by one other user not shown)
Line 5: Line 5:
RSPerl -- The Omegahat interface for R and Perl.
RSPerl -- The Omegahat interface for R and Perl.


Follow these instructions to install the RSPerl bidirections interface for use with the EMMA 2 software.
Follow these instructions to install the RSPerl bidirectional interface for use with the EMMA 2 software.


The RSPerl software is written and copyrighted by Duncan Temple Lang and distributed under the FreeBSD license.
The original RSPerl software is written and copyrighted by Duncan Temple Lang and distributed under the FreeBSD license.
See the RSPerl homepage:  http://www.omegahat.org/RSPerl/index.html
See the RSPerl homepage:  http://www.omegahat.org/RSPerl/index.html
'''Please report any problems related to RSPerl to the omega help mailing list: omega-help@eeyore.ucdavis.edu'''


If you also want to use RSPerl for another purpose (e.g. Perl from R), you should also consider the original installation instructions.
If you also want to use RSPerl for another purpose (e.g. Perl from R), you should also consider the original installation instructions.
Line 23: Line 21:


* Perl >= 5.8.x
* Perl >= 5.8.x
* R >= 2.2.1
* R >= 2.10.x
 
both installed and working.  


R needs to be configured with <code><nowiki>--enable-R-shlib</nowiki></code> switch (which is the case by default).
R needs to be configured with <code><nowiki>--enable-R-shlib</nowiki></code> switch (which is the case by default).
Line 31: Line 27:
== Obtaining the Sources ==
== Obtaining the Sources ==


-- [[MichaelDondrup]] [[DateTime(2006-05-22T13:37:36Z)]]
Changed:
-- [[MichaelDondrup]] [[DateTime(2009-04-09T12:06:56Z)]]
 
/!\ Do not download the version from omegahat. The official version has not been updated since 2007. In the meantime
we provide our own derived version which has an important new feature:
It allows to create complex data structures as RReferences in Perl. Furthermore it contains several Bugfixes in addition.
This package is released under the same license as the original (the BSD-license). EMMA is not compatible with the original version 0.9-1
any more! Report any problems with the derived package to the emma-devel mailing list. 
 
See the Changes file: [[Media:HowToInstallRSPerl$Changes.html]].
 
Use this version for general installation:  
[[Media:HowToInstallRSPerl$RSPerl_1.0-1.tar.gz]]
The release RSPerl v.1.0 under a FreeBSD licence (see LICENCE). Fixes a bug in the intallation process on Ubuntu.
Patch 1.0-1 should now also install under R 2.11, tested on Ubuntu 10.04 (lucid) with R 2.10.1 and 2.11.1
 
------
 
Older versions
 
[[Media:HowToInstallRSPerl$RSPerl_1.0.tar.gz]] (warnings turned to build errors between R 2.10 and R 2.11)
 
0.92:[[Media:HowToInstallRSPerl$RSPerl_0.92.tar.gz]]
And the patch to view the code differences between the Omegahat version and 0.92:
[[Media:HowToInstallRSPerl$rsperl0.91to0.92.patch]]
 
This version includes a patch that hardcodes ld_runpath, therefore reducing the need to set the LD_LIBRARY_PATH.
<span style="font-size: x-large; color: red">!</span> Use this module with the [[CeBiTec]] infrastructure: [[Media:HowToInstallRSPerl$RSPerl_0.92_ldlibpathhack.tar.gz]] <span style="font-size: x-large; color: red">!</span>


Download the latest RSPerl package from http://www.omegahat.org/RSPerl/index.html.
You can also he original package can be downloaded from:
http://www.omegahat.org/RSPerl/index.html  


Version 0.9-1 has been locally tested with
Version 1.0-1 has been tested with:
 
* Ubuntu 10.04 x86_64 (lucid)
* R 2.10.1 & 2.11.1
* Perl 5.10.1
 
Version 0.92 has been tested with


* FreeBSD 5.4
* FreeBSD 5.4
* Solaris 9 and 10 (sparc and i386)
* Solaris 9 and 10 (sparc and i386)
* R 2.2.1, R 2.3.0 (test on sparc solaris only)
* R 2.7.2 (on sparc and i386 solaris using Sun Pro 12 compilers only)
* Perl 5.8.x
* Perl 5.8.8


(Versions of RSPerl prior to 0.9-1 had a bug that prevents EMMA to function with it)
(Versions of RSPerl prior to 0.9-1 had a bug that prevents EMMA to function with it)
Line 51: Line 81:


<pre><nowiki>
<pre><nowiki>
radmin#  R CMD INSTALL --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz  
radmin#  R CMD INSTALL -c --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz  
</nowiki></pre>
</nowiki></pre>


Line 58: Line 88:


<pre><nowiki>
<pre><nowiki>
somebody# R CMD INSTALL -l <whereever> --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz  
somebody# R CMD INSTALL -l <whereever> -c --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz  
</nowiki></pre>
</nowiki></pre>


Line 84: Line 114:
To avoid having to set <code><nowiki>PERL5LIB</nowiki></code> you could also copy the content of $RSPERLDIR/share/lib/site_perl/ to the  
To avoid having to set <code><nowiki>PERL5LIB</nowiki></code> you could also copy the content of $RSPERLDIR/share/lib/site_perl/ to the  
site_perl directory of your local perl installation.
site_perl directory of your local perl installation.
* this can be better done as root by installing RSPerl from a directory rather than the tarball and then:
<pre><nowiki>
> cd <builddir>/RSPerl/src
> make -f Makefile.perl install
</nowiki></pre>
* Hint: If you are getting segmentation faults when loading the R module in perl, then this might be a version mismatch:
Most probably, Perl tries to load the wrong shared object which was compiled for a different version of perl or R. Try not to
mess up versions, this will not work.
* Any perl installation can only work together with one version of R and RSPerl.


== Testing R from Perl ==
== Testing R from Perl ==
Line 92: Line 135:
<pre><nowiki>
<pre><nowiki>
somebody# perl test.pl
somebody# perl test.pl
RSPERL 0.8.0 - May 23 2006, 12:27:13 initialized
[...no error message...]  
[...no error message...]  
somebody# perl test1.pl; perl test2.pl; perl test3.pl; perl plot.pl
somebody# perl test1.pl; perl test2.pl; perl test3.pl; perl plot.pl
Line 101: Line 143:
== Issues ==
== Issues ==


* All resolved :)) Thanx Duncan
* There are several compile warnings
* The build system using Makefile.PL.in makes some invalid assumptions about paths
* The build system will break if the R in your PATH is not the same R you want to install RSPerl to


== System specific issues ==
== System specific issues ==
=== Debian based Linux ===
The perl distribution in Debian-based Linux distributions (Debian, Ubuntu, ...) has been split in two.
To build Rsperl you need the shared object ''libperl.so''. Make sure you have the package libperl installed:
<pre><nowiki>
apt-get install libperl
</nowiki></pre>


=== Solaris ===
=== Solaris ===


There is a patch kindly provided by Björn Fischer from the [[CeBiTec]] support group, that will erase the need to set the LD_LIBRARY_PATH.  
There is a patch kindly provided by Björn Fischer from the [[CeBiTec]] support group, that will remove the need to set the LD_LIBRARY_PATH.  
The patch will appear here soon.
The patched package: [[Media:HowToInstallRSPerl$RSPerl_0.92_ldlibpathhack.tar.gz]]


=== FreeBSD ===
=== FreeBSD ===

Latest revision as of 07:16, 26 October 2011

Short Installation Instructions for RSPerl

NOTE

RSPerl -- The Omegahat interface for R and Perl.

Follow these instructions to install the RSPerl bidirectional interface for use with the EMMA 2 software.

The original RSPerl software is written and copyrighted by Duncan Temple Lang and distributed under the FreeBSD license. See the RSPerl homepage: http://www.omegahat.org/RSPerl/index.html

If you also want to use RSPerl for another purpose (e.g. Perl from R), you should also consider the original installation instructions.


! This page is meant for internal use at the CeBiTec. Any information in this document is provided without any warranty. !


Prerequisites

  • Perl >= 5.8.x
  • R >= 2.10.x

R needs to be configured with --enable-R-shlib switch (which is the case by default).

Obtaining the Sources

Changed: -- MichaelDondrup DateTime(2009-04-09T12:06:56Z)

/!\ Do not download the version from omegahat. The official version has not been updated since 2007. In the meantime we provide our own derived version which has an important new feature: It allows to create complex data structures as RReferences in Perl. Furthermore it contains several Bugfixes in addition. This package is released under the same license as the original (the BSD-license). EMMA is not compatible with the original version 0.9-1 any more! Report any problems with the derived package to the emma-devel mailing list.

See the Changes file: Media:HowToInstallRSPerl$Changes.html.

Use this version for general installation: Media:HowToInstallRSPerl$RSPerl_1.0-1.tar.gz The release RSPerl v.1.0 under a FreeBSD licence (see LICENCE). Fixes a bug in the intallation process on Ubuntu. Patch 1.0-1 should now also install under R 2.11, tested on Ubuntu 10.04 (lucid) with R 2.10.1 and 2.11.1


Older versions

Media:HowToInstallRSPerl$RSPerl_1.0.tar.gz (warnings turned to build errors between R 2.10 and R 2.11)

0.92:Media:HowToInstallRSPerl$RSPerl_0.92.tar.gz And the patch to view the code differences between the Omegahat version and 0.92: Media:HowToInstallRSPerl$rsperl0.91to0.92.patch

This version includes a patch that hardcodes ld_runpath, therefore reducing the need to set the LD_LIBRARY_PATH. ! Use this module with the CeBiTec infrastructure: Media:HowToInstallRSPerl$RSPerl_0.92_ldlibpathhack.tar.gz !

You can also he original package can be downloaded from: http://www.omegahat.org/RSPerl/index.html

Version 1.0-1 has been tested with:

  • Ubuntu 10.04 x86_64 (lucid)
  • R 2.10.1 & 2.11.1
  • Perl 5.10.1

Version 0.92 has been tested with

  • FreeBSD 5.4
  • Solaris 9 and 10 (sparc and i386)
  • R 2.7.2 (on sparc and i386 solaris using Sun Pro 12 compilers only)
  • Perl 5.8.8

(Versions of RSPerl prior to 0.9-1 had a bug that prevents EMMA to function with it)

Installation

You need to be a privileged user to install RSPerl in the standard location of R libraries and Perl modules. At the console, type:


radmin#  R CMD INSTALL -c --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz 

(replace X with the actual version) or

somebody# R CMD INSTALL -l <whereever> -c --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz 

to install to another directory. This is recommended, for a first test of the package, and if you do not want to or cannot become privileged user.

Setting up the Environment

For RSPerl to execute R commands from within Perl you have to set LD_LIBRARY_PATH, PERL5LIB, and R_HOME.


export R_HOME=/usr/local/lib/R 
# or wherever you installed it
RSPERLDIR=$R_HOME/library/RSPerl 
# or wherever you put RSPerl 

export LD_LIBRARY_PATH=$RSPERLDIR/libs:$R_HOME/lib

export PERL5LIB=$RSPERLDIR/share/lib/site_perl
# check, that this directory contains R.pm and RReferences.pm


To avoid having to set PERL5LIB you could also copy the content of $RSPERLDIR/share/lib/site_perl/ to the site_perl directory of your local perl installation.

  • this can be better done as root by installing RSPerl from a directory rather than the tarball and then:
> cd <builddir>/RSPerl/src
> make -f Makefile.perl install


  • Hint: If you are getting segmentation faults when loading the R module in perl, then this might be a version mismatch:

Most probably, Perl tries to load the wrong shared object which was compiled for a different version of perl or R. Try not to mess up versions, this will not work.

  • Any perl installation can only work together with one version of R and RSPerl.

Testing R from Perl

After setting up the environment, try to execute the perl scripts in the tests/ subdirectory of the RSPerl installation.

somebody# perl test.pl
[...no error message...] 
somebody# perl test1.pl; perl test2.pl; perl test3.pl; perl plot.pl


Issues

  • There are several compile warnings
  • The build system using Makefile.PL.in makes some invalid assumptions about paths
  • The build system will break if the R in your PATH is not the same R you want to install RSPerl to

System specific issues

Debian based Linux

The perl distribution in Debian-based Linux distributions (Debian, Ubuntu, ...) has been split in two. To build Rsperl you need the shared object libperl.so. Make sure you have the package libperl installed:

apt-get install libperl

Solaris

There is a patch kindly provided by Björn Fischer from the CeBiTec support group, that will remove the need to set the LD_LIBRARY_PATH. The patched package: Media:HowToInstallRSPerl$RSPerl_0.92_ldlibpathhack.tar.gz

FreeBSD

RSPerl uses GNU make features. To be able to install RSPerl on systems, where make is not GNU make by default, do the following prior to running R CMD INSTALL (provided you are using bash):


radmin#  export MAKE=gmake