HowToInstallRSPerl: Difference between revisions
imported>MichaelDondrup No edit summary |
imported>MichaelDondrup No edit summary |
||
Line 108: | Line 108: | ||
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> | |||
Here is another test script, that will reproduce the bug in the unpatched version: | |||
[[Media:HowToInstallRSPerl$test4.pl]] | |||
With 0.8.0.2 the output should look like this: | |||
<pre><nowiki> | |||
marvin:~/R> perl test.pl | |||
1..1 | |||
ok 1 | |||
RSPERL 0.8.0 - May 26 2006, 17:32:28 initialized | |||
Loaded RSPerl library | |||
Evaluating command | |||
print(version); | |||
foo1 <<- function() return (data.frame(list(matrix(1)))); | |||
foo2 <<- function(x) { return(0) } | |||
parseEval("\nprint(version);\n\nfoo1 <<- function() return (data.frame(list(matrix(1))));\n\nfoo2 <<- function(x) { return(0) } \n\n\t ") | |||
_ | |||
platform sparc-sun-solaris2.9 | |||
arch sparc | |||
os solaris2.9 | |||
system sparc, solaris2.9 | |||
status | |||
major 2 | |||
minor 3.0 | |||
year 2006 | |||
month 04 | |||
day 24 | |||
svn rev 37909 | |||
language R | |||
version.string Version 2.3.0 (2006-04-24) | |||
Got the answer | |||
function(x) { return(0) } | |||
<environment: 61a8bc> | |||
Calling R function name `foo1', # arguments: 1 | |||
Calling R | |||
foo1() | |||
Performed the call, result has length 1 | |||
Testing call: This works :) | |||
Calling R function name `foo2', # arguments: 2 | |||
1) Arg type 3 | |||
Calling R | |||
foo2(list(structure.1...Dim...c.1..1.. = 1)) | |||
Performed the call, result has length 1 | |||
Primitive, R type: 14, of length 1 | |||
[1] 0 | |||
Testing call with named arguments: This fails :( | |||
Calling R function name `foo1', # arguments: 1 | |||
Calling R | |||
foo1() | |||
Performed the call, result has length 1 | |||
# of arguments: -1 | |||
# of named arguments 1 | |||
0) x Arg type 6 | |||
foo2(x = list(structure.1...Dim...c.1..1.. = 1)) | |||
0 this does not work | |||
</nowiki></pre> | </nowiki></pre> | ||
Revision as of 17:17, 26 May 2006
Short Installation Instructions for RSPerl
NOTE
RSPerl -- The Omegahat interface for R and Perl.
Follow these instructions to install the RSPerl bidirections 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. 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.
! 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.2.1
both installed and working.
R needs to be configured with --enable-R-shlib
switch (which is the case by default).
Obtaining the Sources
-- MichaelDondrup DateTime(2006-05-22T13:37:36Z)
/!\ The current version (0.8-2) has a bug that prevents EMMA to function with it.
Please use the following patched version (0.8.0.2) until the problem is finally solved:
MD5 key: 508035fa31dc570bba6ea9517e003913
The patched version has been tested with
- FreeBSD 5.4
- Solaris 9 and 10 (sparc and i386)
- Ubuntu Linux 5.10 (thanx to Johan Nylander)
- R 2.2.1, R 2.3.0 (test on sparc solaris only)
- Perl 5.8.x
-- MichaelDondrup DateTime(2006-05-26T16:11:33Z) Build attemps with R 2.3.0 were reported to fail, but I have tested a local install on solaris. No problems with building the 0.8-2 and 0.8.0.2, but the bug is still present in 0.8-2.
(Otherwise, you could: download the latest RSPerl package from http://www.omegahat.org/RSPerl/index.html.)
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 --configure-args='--with-in-perl --with-modules=""' RSPerl_X.tar.gz
(replace X with the actual version) or
somebody# R CMD INSTALL -l <whereever> --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.
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 RSPERL 0.8.0 - May 23 2006, 12:27:13 initialized [...no error message...] somebody# perl test1.pl; perl test2.pl; perl test3.pl; perl plot.pl
Here is another test script, that will reproduce the bug in the unpatched version:
Media:HowToInstallRSPerl$test4.pl
With 0.8.0.2 the output should look like this:
marvin:~/R> perl test.pl 1..1 ok 1 RSPERL 0.8.0 - May 26 2006, 17:32:28 initialized Loaded RSPerl library Evaluating command print(version); foo1 <<- function() return (data.frame(list(matrix(1)))); foo2 <<- function(x) { return(0) } parseEval("\nprint(version);\n\nfoo1 <<- function() return (data.frame(list(matrix(1))));\n\nfoo2 <<- function(x) { return(0) } \n\n\t ") _ platform sparc-sun-solaris2.9 arch sparc os solaris2.9 system sparc, solaris2.9 status major 2 minor 3.0 year 2006 month 04 day 24 svn rev 37909 language R version.string Version 2.3.0 (2006-04-24) Got the answer function(x) { return(0) } <environment: 61a8bc> Calling R function name `foo1', # arguments: 1 Calling R foo1() Performed the call, result has length 1 Testing call: This works :) Calling R function name `foo2', # arguments: 2 1) Arg type 3 Calling R foo2(list(structure.1...Dim...c.1..1.. = 1)) Performed the call, result has length 1 Primitive, R type: 14, of length 1 [1] 0 Testing call with named arguments: This fails :( Calling R function name `foo1', # arguments: 1 Calling R foo1() Performed the call, result has length 1 # of arguments: -1 # of named arguments 1 0) x Arg type 6 foo2(x = list(structure.1...Dim...c.1..1.. = 1)) 0 this does not work
Issues
- The scripts RSPerl.bsh and RSPerl.csh in the scripts/ subdirectory are currently broken.
- Too many environment variables have to be set.
- The installation process should try to install the .pm files in the standard perl distribution
- No build with R 2.3.0
-c
or--clean
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
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. The patch will appear here soon.
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