[Rd] Problem with .First.lib while running R CMD check
Martin Maechler
maechler at stat.math.ethz.ch
Tue Jun 1 14:18:00 CEST 2004
>>>>> "Frank" == Frank E Harrell <f.harrell at vanderbilt.edu>
>>>>> on Tue, 01 Jun 2004 07:48:17 +0200 writes:
Frank> Martin Maechler wrote:
>>>>>>> "Frank" == Frank E Harrell <f.harrell at vanderbilt.edu>
>>>>>>> on Mon, 31 May 2004 18:44:55 +0200 writes:
>>
>>
Frank> I am having difficulty running R CMD check using the
Frank> 30May04 version of R-devel and a new version of the
Frank> Hmisc package:
>>
Frank> * checking S3 generic/method consistency ... WARNING
Frank> Error in .tryQuietly({ : Error in library(package, lib.loc = lib.loc,
Frank> character.only = TRUE, verbose = FALSE) :
Frank> .First.lib failed
Frank> Execution halted
>>
Frank> See section 'Generic functions and methods' of the
Frank> 'Writing R Extensions' manual.
>>
>> I'm not sure, but I'd guess it's simply the last line of your
>> .First.lib. that fails, i.e.,
>> library.dynam("Hmisc", pkg, lib)
>> which fails loading the C/Fortran code.
>> I've had similar experiences. The 'R CMD check' error message
>> is definitely ``sub optimal''.
>>
>> Simply try (in R-devel)
>>
>> library(Hmisc, lib.loc="~/R/Hmisc.Rcheck")
>>
>> This should give a much better error message.
>> Let us know if this helped.
>>
>> Regards, Martin
Frank> Thanks Martin. Here's what I get:
>> library(Hmisc,lib.loc="~/R/Hmisc.Rcheck")
Frank> Hmisc library by Frank E Harrell Jr
Frank> Type library(help='Hmisc'), ?Overview, or ?Hmisc.Overview')
Frank> to see overall documentation.
Frank> Hmisc redefines [.factor to drop unused levels of factor variables
Frank> when subscripting. To prevent this behaviour, issue the command
Frank> options(drop.unused.levels=F).
Frank> Error in dyn.load(x, as.logical(local), as.logical(now)) :
Frank> unable to load shared library
Frank> "/home/harrelfe/R/Hmisc.Rcheck/Hmisc/libs/Hmisc.so":
Frank> libR.so: cannot open shared object file: No such file or directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this probably is the clue : Hmisc.so expects an libR.so
which is what you get when you do ......./configure --enable-shared
and make for building R itself.
It looks like your version of R-devel
hasn't successfully been built with the ..shared option.
But when using it to build packages, it *does* assume the
'shared R' (libR.so in unix) to be available.
[or Hmisc.so itself or its underlying *.o files were built with
a non-shared (i.e. default) version of R ?]
If it the former (and incomplete shared installation) I'd
consider wiping that out and rebuild R afresh -- shared or not --
test R ("make check" or even "make check-all") and when
successful, rebuild Hmisc {removing at least Hmisc/src/*o
beforehand!} with that version of R.
Martin
Frank> Error in library(Hmisc, lib.loc = "~/R/Hmisc.Rcheck") :
Frank> .First.lib failed
Frank> Since Hmisc.so is in the right place:
Frank> ~/R/Hmisc.Rcheck/Hmisc/libs harrelfe:ls -la
Frank> total 48
Frank> drwxr-xr-x 2 harrelfe harrelfe 4096 May 31 18:31 .
Frank> drwxr-xr-x 10 harrelfe harrelfe 4096 May 31 18:34 ..
Frank> -rwxr-xr-x 1 harrelfe harrelfe 37524 May 31 18:31 Hmisc.so
Frank> I don't understand the problem. The same Hmisc.so (under
Frank> /usr/local/lib/R/site-library) loads fine under R 1.9.
Frank> Frank
More information about the R-devel
mailing list