[R] Running R on read-only file system, without temporary directory

William Dunlap wdunlap at tibco.com
Sat Sep 5 02:40:42 CEST 2009


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Duncan Murdoch
> Sent: Friday, September 04, 2009 5:05 PM
> To: Gábor Csárdi
> Cc: R mailing list
> Subject: Re: [R] Running R on read-only file system,without 
> temporary directory
> 
> On 04/09/2009 3:42 PM, Gábor Csárdi wrote:
> > Dear All,
> > 
> > I would like to do run R without having write permissions to any
> > directory on the system. It seems that I need to modify the R source
> > code for this, to make R start without creating a temporary 
> directory.
> > 
> > So far, so good. But should I expect any more complications? Does R
> > really need the temporary directory that much?
> 
> Many R functions create temporary files in it.  (There are around 20 
> calls to tempfile() and another 20 to tempdir() in the base R 
> sources, 
> if my quick grep was right.  I've no idea how many calls 
> there are from 
> contributed packages.)  Would R work if these all failed?  I 
> don't know, 
> but I'd guess it wouldn't work very well.
> 
> Duncan Murdoch

On Linux R can do quite a bit without using R_SESSION_TMPDIR
(which is where its temp files get made).  You can see if it can
do enough for your needs by doing
   Sys.chmod(Sys.getenv("R_SESSION_TMPDIR"), "0000")
right after starting up.  E.g.,

   > Sys.chmod(Sys.getenv("R_SESSION_TMPDIR"), "0000")
   > 1:10
    [1]  1  2  3  4  5  6  7  8  9 10
   > names(cars)
   [1] "speed" "dist"
   > lm(dist~speed, data=cars)

  Call: 
  lm(formula = dist ~ speed, data = cars)

  Coefficients:
  (Intercept)        speed
      -17.579        3.932

  > plot(.Last.value)
  Hit <Return> to see next plot:
  Hit <Return> to see next plot:
  Hit <Return> to see next plot:
  Hit <Return> to see next plot:
  > help(plot)
  Error in file(out, "wt") : cannot open the connection
  In addition: Warning message:
  In file(out, "wt") :
    cannot open file '/tmp/RtmpPxKrY4/Rtxt327b23c6': Permission denied
  > example(lm)
  Error in file(out, "wt") : cannot open the connection
  In addition: Warning message:
  In file(out, "wt") :
    cannot open file '/tmp/RtmpPxKrY4/Rex643c9869': Permission denied
  > install.packages("ggplot2")
  --- Please select a CRAN mirror for use in this session ---
  Loading Tcl/Tk interface ... done
  Error in install.packages("ggplot2") :
    unable to create temporary directory '/tmp/RtmpPxKrY4/downloaded_packages'
  In addition: Warning message:
  In dir.create(tmpd) :
    cannot create dir '/tmp/RtmpPxKrY4/downloaded_packages', reason 'Permission denied'

Of couse, that doesn't catch things done during startup or temp files
created outside of the R-standard directory.

Bill Dunlap
TIBCO Software Inc - Spotfire Division
wdunlap tibco.com  

> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 




More information about the R-help mailing list