On 05/02/2019 09:43, Loris Bennett wrote:
Hi,

I have been trying to add extra R packages as suggested.  However,  with
the following:

   easyblock = 'Bundle'

   name = 'R'
   version = '3.5.1'
   versionsuffix='-zedat_extras'
   rver = '3.5.1'

   homepage = 'http://www.r-project.org/'
   description = """R is a free software environment for statistical computing and 
graphics."""

   toolchain = {'name': 'foss', 'version': '2018b'}

   # these are extensions for R
   exts_defaultclass = 'RPackage'
   exts_filter = ("R -q --no-save", "library(%(ext_name)s)")

   dependencies = [
       ('R', '3.5.1'),
   ]

   name_tmpl = '%(name)s_%(version)s.tar.gz'

   ext_options = {
       'source_urls': [
           'http://cran.r-project.org/src/contrib/Archive/%(name)s',  # package 
archive
           'http://cran.r-project.org/src/contrib/',  # current version of 
packages
       ],
       'source_tmpl': name_tmpl,
   }

   # !! order of packages is important !!
   # packages updated on 22nd January 2019
   exts_list = [
       ('StanHeaders', '2.18.1', ext_options),
       ('inline', '0.3.15', ext_options),
       ('rstan', '2.17.2', ext_options),
   ]

   moduleclass = 'lang'


I get the error:

   == FAILED: Installation ended unsuccessfully (build directory: 
/trinity/shared/easybuild/build/R/3.5.1/foss-2018b-zedat_extras): build failed 
(first 300 chars): Sanity check failed: no (non-empty) directory found at 'bin' 
in /trinity/shared/easybuild/software/R/3.5.1-foss-2018b-zedat_extras
   no (non-empty) directory found at 'lib' or 'lib64' in 
/trinity/shared/easybuild/software/R/3.5.1-foss-2018b-zedat_extras
   extensions sanity check failed for 3 extensions:

If I remove the explicit sanity checks with

   sanity_check_paths = {
       'files': [],
       'dirs': [],
   }

I get

   == FAILED: Installation ended unsuccessfully (build directory: 
/trinity/shared/easybuild/build/R/3.5.1/foss-2018b-zedat_extras): build failed 
(first 300 chars): Sanity check failed: extensions sanity check failed for 3 
extensions: StanHeaders, inline, rstan
failing sanity check for 'StanHeaders' extension: command "R -q --no-save" (stdin: 
"library(StanHeaders)") failed; output:
   > library(StanHeaders)
   Error in library(StanHeaders) : there is no package calle

The problem seems to be that the packages are installed successfully under

   /trinity/shared/easybuild/software/R/3.5.1-foss-2018b-zedat_extras

but because this directory is not in the library path, the default R
sanity check of loading the packages fails.

What I am missing?

This, to update $R_LIBS so R knows where to find the additional packages:

modextrapaths = {'R_LIBS': ''}


You also need a custom sanity_check_paths, this one is typical for a bundle of R packages:

sanity_check_paths = {
    'files': [],
    'dirs': [name],
}

You can make(/should?) make it a bit more specific of course...


regards,

Kenneth


Cheers,

Loris

"Dey, John F" <[email protected]> writes:

To customize R to your site create a separate EasyConfig using easyblock =
'Bundle' and exts_defaultclass = 'RPackage'.  Depend the "Published" R from the
official EasyBuild/EasyConfig repo. Create a new exts_list with packages local
to your site that are not in the base R easyconfig.  You will also be able to
add BioConductor packages to your new custom build of R.

Please look at an example;  I add the suffix "fh1" for Fred Hutch".
https://github.com/FredHutch/easybuild-life-sciences/blob/master/fh_easyconfigs/R-3.5.1-foss-2018b-fh1.eb



John Dey

On 1/18/19, 4:05 AM, "[email protected] on behalf of Loris Bennett" 
<[email protected] on behalf of [email protected]> wrote:

     Hi,

     I'm installing R and see that a whole bunch of R packages are also
     being installed via exts_list.  However, if I need additional packages,
     do I just make a copy of the original easyconfig and just add to
     exts_list?  Or is there some way of having a list of only the additional
     packages which could somehow be included by the current and all future
     standard R easyconfigs?

     Cheers,

     Loris

     --
     Dr. Loris Bennett (Mr.)
     ZEDAT, Freie Universität Berlin         Email [email protected]


--
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin         Email [email protected]

Reply via email to