Re: [R] Unix-like permissions to allow a user to update recommen

From: John Logsdon <>
Date: Tue, 19 Jun 2007 10:04:08 +0100


When you move from version to version of R a completely new directory tree is installed so in principal if you *know* that a package is not updated you can re-install it from the old tree or copy it to your new tree and install it.

Maybe an 'import packages from previous versions' could be included which would search for other installations, offer a choice if >1 and automatically pick out the list of old packages again offering the user to check/uncheck each package. Then the action would import or download updated versions as appropriate...

What would be more useful (and I don't really think this is the right list) is to have permissions and a date stamp attached to each object and to extend the ls() command to be able to select or sort on these aspects of an object, also the size - just like Unix in fact (perhaps with more comprehensive permissions although the group/world structures are not needed).

This is because as memory increases, I guess many people do what I do and create all their objects in the workspace - then forget when we wrote and when!

On Monday 18 June 2007 21:27:56 Patrick Connolly wrote:
> On Mon, 18-Jun-2007 at 11:53AM +0100, Ted Harding wrote:
> |> On 18-Jun-07 10:11:43, Patrick Connolly wrote:
> |> > I installed R from the tar.gz file (as root) in a directory under
> |> > /usr/local. The recommended packages are installed in a library in
> |> > that directory whereas additional packages I install in a directory
> |> > under the /home directory as a user.
> |> >
> |> > Updating the additional packages is very easy with update.packages()
> |> > as a non-root user, but the recommended packages cannot be done so
> |> > readily because of file permissions.
> |> >
> |> > My question is how do I set the permissions or ownerships in the
> |> > /usr/local/R-2.5.0 directory so that everything necessary can be
> |> > writable by a user? Should I make a group for R users (total of one
> |> > member) or is it simpler than that?
> |>
> |> Since you have root access, do you need to segregate the additional
> |> packages to a particular user?
> It's handy to not have to reload packages that don't change between
> versions of the basic installation.
> |> Though I don't run R as root for general use, I always install/update
> |> by running R CMD as root. This makes all of R ("recommended" and also
> |> any extras) available system-wide, and no pemission problems arise.
> |>
> |> This of course does not stop you from setting up a special .Rprofile
> |> for each user, since this by definition lives in the user's home
> |> directory.
> |>
> |> Does this help? Or are there issues you haven't mentioned which make
> |> such an approach not feasible?
> I don't exactly have issues. It's not a huge problem I'm dealing
> with. It's simple enough for me to use update.packages() as a user
> which will download the appropriate packages. Though they won't be
> installed, they are all in the one place in the /tmp/ directory from
> where I can install them as root. I just thought there must be a more
> elegant way to set permissions so that users could write to the
> subdirectories under /usr/local/ So much of the installation
> process of R and its packages is so elegant, I'd like to retain some
> of that elegance.
> best

Best wishes


John Logsdon                               "Try to make things as simple
Quantex Research Ltd, Manchester UK         as possible but not simpler"    
+44(0)161 445 4951/G:+44(0)7717758675

______________________________________________ mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.
Received on Tue 19 Jun 2007 - 09:10:06 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 19 Jun 2007 - 10:32:09 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.