HowToInstallRSPerl: Difference between revisions

From BRF-Software
Jump to navigation Jump to search
imported>MichaelDondrup
No edit summary
m (24 revisions)
 
(15 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. 


/!\ The current version  (0.8-1) has a bug that prevents EMMA to function with it.
See the Changes file: [[Media:HowToInstallRSPerl$Changes.html]].


Please use the following patched version (0.8.0.2) until the problem is finally solved:
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


[[Media:HowToInstallRSPerl$RSPerl_0.8.0.2.tar.gz| RSPerl_0.8.0.2.tar.gz]]
------


''MD5 key: 508035fa31dc570bba6ea9517e003913''
Older versions


The patched version has been tested with
[[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>
 
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
* FreeBSD 5.4
* Solaris 9 and 10 (sparc and i386)
* Solaris 9 and 10 (sparc and i386)
* Ubuntu Linux 5.10 (thanx to Johan Nylander)
* R 2.7.2 (on sparc and i386 solaris using Sun Pro 12 compilers only)
* R 2.2.1
* Perl 5.8.8
* Perl 5.8.x
 
/!\ Build attemps with R 2.3.0 were reported to fail.


(Otherwise, you could:
(Versions of RSPerl prior to 0.9-1 had a bug that prevents EMMA to function with it)
download the latest RSPerl package from http://www.omegahat.org/RSPerl/index.html.)


== Installation ==
== Installation ==
Line 61: 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 68: 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 94: 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 102: 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


</nowiki></pre>




== 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


</nowiki></pre>
== System specific issues ==


=== Debian based Linux ===


== Issues ==
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:


* The scripts RSPerl.bsh and RSPerl.csh in the scripts/ subdirectory are currently broken.
<pre><nowiki>
* Too many environment variables have to be set.
apt-get install libperl
* The installation process should try to install the .pm files in the standard perl distribution
</nowiki></pre>
* No build with R 2.3.0
* <code><nowiki>-c</nowiki></code> or <code><nowiki>--clean</nowiki></code> will not completely clean up the files generated by configure.
* I did not update the Changes file in the package.
* The test scripts should be put in a single script and not use plot() because that requires X11 or gs
 
== System specific issues ==


=== 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