HowToInstallRSPerl: Difference between revisions
imported>MichaelDondrup No edit summary |
m (24 revisions) |
||
(10 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 | 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 | ||
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. | * R >= 2.10.x | ||
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( | 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> | |||
You can also he original package can be downloaded from: | |||
http://www.omegahat.org/RSPerl/index.html | |||
Version 0. | 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. | * R 2.7.2 (on sparc and i386 solaris using Sun Pro 12 compilers only) | ||
* Perl 5.8. | * 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 | ||
[...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 == | ||
* | * 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 == | ||
Line 116: | Line 160: | ||
=== Solaris === | === Solaris === | ||
There is a patch kindly provided by Björn Fischer from the [[CeBiTec]] support group, that will | 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 | 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