Summary: The directory /usr/local/lib/R/site-library can be used for site-wide multi-user installations of R.
This is even the default on Debian and Ubuntu (following a suggestion by Kurt and Fritz a decade ago over beers -- what could be better). However, R enforces wrong permissions on directories and files there (removing group-write) which effectively defeats this purpose, and breaks multiuser installation: if Tom, Dick and Harry are members of group 'r-users', each one can install in the directory, but neither can _upgrade_ a package installed by one of the others. I would like to correct this. Details: For a while now, R CMD INSTALL dispatches installation work to the R function tools:::.install_packages() from the file tools/install.R. The function does a lot of hardcoded 'chmod' with constant arguments: edd@max:~/svn/r-devel/src/library/tools/R$ grep Sys.chmod install.R if (!WINDOWS) Sys.chmod(file.path(dest, files), "755") Sys.chmod(file.path(instdir, f), "644") Sys.chmod(Sys.glob(file.path(instdir, "data", "*")), "644") Sys.chmod(Sys.glob(file.path(instdir, "demo", "*")), "644") Sys.chmod(Sys.glob(file.path(instdir, "exec", "*")), "755") Sys.chmod(i2_files[execs], "755") edd@max:~/svn/r-devel/src/library/tools/R$ Moreover, it also calls a C function for cleanup cleanup: edd@max:~/svn/r-devel/src/library/tools/R$ grep ".Call(dir" install.R .Call(dirchmod, instdir) .Call(dirchmod, ss) .Call(dirchmod, ss) ## tree, since the later .Call(dirchmod) call will edd@max:~/svn/r-devel/src/library/tools/R$ which also uses unconditional 644 / 755 mode_t mask = S_IRUSR | S_IRGRP | S_IROTH | S_IWUSR, /* 0644 */ dirmask = mask | S_IXUSR | S_IXGRP | S_IXOTH; /* 0755 */ Proposal: Add a new option() [with a to-be-determined name] which, if enabled, turns on group-write modes for files and directories, ie "664" and "775". One way would be to set two character vars at the beginning of _install_packages and to pass a flag to the dirchmod call as so that 'S_IWGRP' (the 00020 "write by group" permission) can be set. I would be happy to write such a patch (including documentation updates) if someone from R Core can signal willigness to look at it. Thanks, Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel