HowToInstallRSPerl: Difference between revisions
imported>MichaelDondrup No edit summary |
m (24 revisions) |
||
(19 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
= Short Installation instructions for RSPerl | = 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. | If you also want to use RSPerl for another purpose (e.g. Perl from R), you should also consider the original installation instructions. | ||
''' | ----- | ||
<span style="font-size: x-large; color: red">!</span> '''This page is meant for internal use at the CeBiTec. Any information in this document is provided without any warranty.''' <span style="font-size: x-large; color: red">!</span> | |||
----- | |||
== Prerequisites == | == Prerequisites == | ||
* Perl | * Perl >= 5.8.x | ||
* R | * R >= 2.10.x | ||
R needs to be configured with --enable- | R needs to be configured with <code><nowiki>--enable-R-shlib</nowiki></code> 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. | |||
<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 | |||
* 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 == | == Installation == | ||
Line 35: | 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> | |||
(replace X with the actual version) | |||
or | |||
<pre><nowiki> | |||
somebody# R CMD INSTALL -l <whereever> -c --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz | |||
</nowiki></pre> | |||
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 <code><nowiki>LD_LIBRARY_PATH</nowiki></code>, <code><nowiki>PERL5LIB</nowiki></code>, and <code><nowiki>R_HOME</nowiki></code>. | |||
<pre><nowiki> | |||
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 | |||
</nowiki></pre> | |||
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. | |||
* 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 == | |||
After setting up the environment, try to execute the perl scripts in the <code><nowiki>tests/</nowiki></code> | |||
subdirectory of the RSPerl installation. | |||
<pre><nowiki> | |||
somebody# perl test.pl | |||
[...no error message...] | |||
somebody# perl test1.pl; perl test2.pl; perl test3.pl; perl plot.pl | |||
</nowiki></pre> | </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 | |||
== 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 === | |||
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 === | === 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