[Rd] dir.create not working correctly under Solaris (PR#13834)

aseila at gmail.com aseila at gmail.com
Wed Jul 15 19:25:16 CEST 2009


Full_Name: Andy Seila
Version: 2.9.1-patched
OS: Solaris 10 x86
Submission from: (NULL) (66.156.94.118)


When compiling R under a user's home directory that is mounted by the
automounter, R cannot create directories using dir.create() with
"recursive=TRUE".  This causes the build to exit with an error when attempting
to install package VR.  If R is built and installed under a user's home
directory that is automounted, additional packages cannot be installed using "R
CMD INSTALL" because the R script calls dir.create() with "recursive=TRUE).

Here is some output with R-patched_2009-07-06: (The working directory is
/home/andy/temp)

> dir.create("/home/andy/temp/bob", recursive=TRUE)
Warning message:
In dir.create("/home/andy/temp/bob", recursive = TRUE) :
  cannot create dir '/home/andy', reason 'Operation not applicable'
> system("ls")
> dir.create("/home/andy/temp/bob/bill", recursive=TRUE)
Warning message:
In dir.create("/home/andy/temp/bob/bill", recursive = TRUE) :
  cannot create dir '/home/andy', reason 'Operation not applicable'
> system("ls")
> dir.create("/home/andy/temp/bob", recursive=FALSE)
> system("ls")
bob
> dir.create("/home/andy/temp/bob/bill", recursive=FALSE)
> system("ls bob")
bill
> system("rm -rf bob")
> system("ls")
> dir.create("bob", recursive=TRUE)
> system("ls")
bob
> system("rm -rf bob")
> dir.create("bob/bill", recursive=TRUE)
> system("ls")
bob
> system("ls bob")
bill

A workaround is to build and install R under directories that are not
automounted.  If the directory /export/home/<user> is mounted on /home/<user>,
another solution is to cd to /export/home/<user> before building R.  However,
many systems automount a directory accessed through nfs and this workaround is
not an option.  Regardless, if R is installed under /home/<user> and
/home/<user> is automounted, additional packages cannot be installed.



More information about the R-devel mailing list