Thanks, everyone, for responding.  Here a summary of my research so
far--I do not quite understand what I am doing, but I spotted
a number of different issues, and I got the checks to work.

* I was not aware of the distinction between default and recommended
  packages, and the fact that the latter is not installed by default
  (although usually they are on production systems).
* in the rocker/r-devel container, R and R-devel use (partly)
  overlapping lib paths: `/usr/local/lib/R/site-library` and
  `/usr/lib/R/library`.

* R and R-devel have different packages installed by default, but
  because both access `/usr/lib/R/library`, both seem to have access
  to both default and recommended packages.
* `RD CMD check` uses a different lib path, containing
  `/usr/local/lib/R/library` and a temporary folder.  The latter will
  contain the needed packages given they are installed in a certain
  location (I still do not understand how they get there, and from
  where).
* The message I got -- package _lattice_ not available -- was due to
  two reasons: a) it is a recommended, not a default package; and b)
  it is installed in `/usr/lib/R/library` where it is normally
  accessible for both R and R-devel, and hence was not installed
  again.  However, from there it is not copied to the temporary folder that
  R CMD check uses.
* Finally, by setting `ENV R_LIBS=/usr/local/lib/R/site-library/` in
  the Dockerfile, the checks work.  But I am not sure why.

It would be great to isolate R and R-devel better in the docker
image.  Not sure whether it is easy to do...

Cheers,
Ott

On Tue, Aug 12, 2025 at 1:17 AM Berwin A Turlach <berwin.turl...@gmail.com>
wrote:

> On Mon, 11 Aug 2025 08:47:45 -0400
> Duncan Murdoch <murdoch.dun...@gmail.com> wrote:
>
> > Regarding Dirk's "narrower" comment:  I think that is really his
> > decision about the docker container, not a property of R CMD check.
> > R CMD check needs to be able to succeed if the only packages
> > installed are the hard dependencies (Depends, Imports, plus base
> > packages), but it doesn't actually install anything.  That's up to
> > you before running it.
>
> Obviously I cannot speak for Dirk and where his comment comes from :),
> but WRE has since ages the following note:
>
>         Note: R CMD check and R CMD build run R processes with
>         --vanilla in which none of the user’s startup files are read.
>         If you need R_LIBS set (to find packages in a non-standard
>         library) you can set it in the environment: also you can use
>         the check and build environment files (as specified by the
>         environment variables R_CHECK_ENVIRON and R_BUILD_ENVIRON; if
>         unset, files55 ~/.R/check.Renviron and ~/.R/build.Renviron are
>         used) to set environment variables when using these utilities.
>
> On my linux box I update and compile R patched and R devel regularly,
> and at some point I got tired of also installing a lot of packages
> (that I need for checking) each time.  So I moved all of these
> additional packages to another library (where they are updated on an
> as needed basis via update.packages(ask=FALSE, CheckBuilt=TRUE)). After
> this restructure R patched and R devel could promptly not find those
> packages anymore (until I changed my scripts to create appropriate
> symbolic links, I did not want to go down the path of setting
> environment variables).
>
> Cheers,
>
>         Berwin
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to