[Rd] Rcmd check fails on Windows Samba network path in R 2.9.1

Henrik Bengtsson hb at stat.berkeley.edu
Wed Jul 22 10:46:18 CEST 2009


See r-devel thread '[Rd] file.access() on network (mounted) drive on
Windows Vista' on Nov 26, 2008:

  http://tolstoy.newcastle.edu.au/R/e5/devel/08/11/0806.html

where it was concluded that file.access() is "not 100%", e.g.
file.access() and file.info() can give different answers.

I added fileAccess(..., safe=TRUE) to R.utils, which imitates
file.access() but relies also on file.info() and file.exists() to
infer the rights.  It is still not 100% but (hopefully) closer than
file.access().

/H

On Tue, Jul 21, 2009 at 1:55 PM, Kevin R.
Coombes<krcoombes at mdacc.tmc.edu> wrote:
> Hi,
>
> The problem almost certainly has something to do with Samba.  We also have a
> NetApp file system, and copying the package source to that drive and running
> Rcmd check from Windows works just fine.
>
> When running the commands from an interactive R session, file_test returns
> TRUE and file.access to test write permission indicates a failure, even
> though that information is incorrect.Here is a session transcript:
>
> -----------------------------------------
>> getwd()
> [1] "n:/krc/Umpire/R-Package"
>> lib <- "Umpire.Rcheck"
>> file_test("-d", lib)
> [1] TRUE
>> file.access(lib, 2)
> Umpire.Rcheck
>          -1
>> dir.create(paste(lib, "testdir", sep='/'))
>> dir(lib)
> [1] "00check.log"   "00install.out" "testdir"     > sessionInfo()
> R version 2.9.1 (2009-06-26)
> i386-pc-mingw32
>
> locale:
> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
> States.1252;LC_MONETARY=English_United
> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
> ----------------------------------------
> Again, this all worked (and still works) correctly in 2.8.1.
>
>   Kevin
>
> Tony Plate wrote:
>>
>> This error message looks like it comes from src/library/tools/R/install.R,
>> which contains the following test:
>>
>>   if (!.file_test("-d", lib) || file.access(lib, 2L))
>>       stop("ERROR: no permission to install to directory ",
>>            sQuote(lib), call. = FALSE)
>>
>> The function .file_test() is defined earlier in the same file (it looks at
>> file.info(lib)$isdir) and appears to be intended to be the same as
>> utils:::file_test().
>>
>> You could start trying to figure out what the problem is by trying these
>> calls on the directory in question from an interactive R session.
>> (They seem to work as intended on my Windows system with a NetApp file
>> system mounted on a letter drive.)
>>
>> -- Tony Plate
>>
>> Kevin R. Coombes wrote:
>>>
>>> Hi,
>>>
>>> I have just updated R from version 2.8.1 to version 2.9.1.  I am running
>>> Windows XP Professional, Service Pack 3.
>>>
>>> With the update, I decided to update a set of packages that I maintain by
>>> compiling them for the new version.  Everything worked fine except for one
>>> package.  This package is unique (among the six I was working on) in that is
>>> stored on a UNIX-based file server that is exported to the Windows network
>>> via Samba.  The root of that network path is mapped to drive "N:" on the
>>> local machine.
>>>
>>> 'Rcmd check' fails for this package under 2.9.1.  The error message in
>>> '00install.out'  is:
>>> "Error: ERROR: no permission to install to directory
>>> 'N:/krc/Umpire/R-Package/Umpire.Rcheck'"
>>>
>>> 'Rcmd check' works for this package under 2.8.1.
>>>
>>> 'Rcmd check' works for this package if the directory is copied onto a
>>> local hard drive instead of the network drive.
>>>
>>> 'Rcmd build' and 'Rcmd build --binary' work under both versions.
>>>
>>> It would be nice if someone could figure out what has changed and fix
>>> it....
>>>
>>> Best,
>>>   Kevin Coombes
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list