[R] [External] Re: Error in setwd(dir) when initializing R

Ivan Krylov kry|ov@r00t @end|ng |rom gm@||@com
Tue Nov 21 09:16:01 CET 2023


On Tue, 21 Nov 2023 08:46:25 +0100
Ana de las Heras Molina <andelash using ucm.es> wrote:

> > traceback()
> 4: setwd(dir)
> 3: .rs.onAvailablePackagesStale(reposString)
> 2: .rs.availablePackages()
> 1: .rs.rpc.discover_package_dependencies("3C994FEC", ".R")

This is something that RStudio (not R itself!) does, but it shouldn't
be failing. Here's what seems to be failing for you [*]:

   # prepare directory for discovery of available packages
   dir <- tempfile("rstudio-available-packages-")
   dir.create(dir, showWarnings = FALSE)

   # create a file in that directory
   saveRDS(Sys.time(), file = file.path(dir, "time.rds"))
   # (This doesn't fail because we keep executing the function, so the
   # directory must exist!) 

   # move there
   owd <- setwd(dir) # this somehow fails

Is it an option to disable OneDrive for the home directory? It's
clearly doing something terrible to your temporary files. If not, it
should be possible to create a separate temporary directory on your
computer (the path must not contain spaces) and list it in the
.Renviron file in the home directory as the TMPDIR variable:

TMPDIR=C:/my/R/temp/directory

See help(Startup) for more information on .Renviron.

Alternatively, we may try to perform some debugging. If you set
options(error = recover) and run .rs.availablePackages() again, it
should fail and give you a debugger prompt. Choose the deepest option
in the call stack and try to find out the value of the `dir` variable.
Does dir.exists(dir) still return TRUE? Does setwd(dir) still fail? Can
you open the directory in the Windows Explorer?

The last but not the least, do you see some of the same problems if you
launch Rgui.exe instead of RStudio?

-- 
Best regards,
Ivan

[*]
https://github.com/rstudio/rstudio/blob/45af283a7a5853399904ddc438f6cd89d9b5c137/src/cpp/session/modules/SessionPackages.R#L1625-L1636



More information about the R-help mailing list