[R-SIG-Mac] Installing Mac packages from a directory of .tgz files

Prof Brian Ripley ripley at stats.ox.ac.uk
Sat Jan 15 10:21:12 CET 2011

On Sat, 15 Jan 2011, Berend Hasselman wrote:

> On 15-01-2011, at 07:39, Murray Jorgensen wrote:
>> Well, still no responses, but I'm further along the trail. I decided that I must need that 'PACKAGES' file so I went back to CRAN and got it, and placed it in my /Applications/tgz12.1/ folder.
>> This time with 'Other Directory URL' as 'files:///Applications/tgz12.1/' I at least got the Package list populated in the 'Repository Version' column.
>> I selected all and clicked 'Install Selected' to no obvious result, 
>> although maybe I was too impatient. Then I tried again selecting 
>> only the first package 'abc' but still it seems without response.
> First of all, if you are trying to install from a local repository 
> there are specific and detailed requirements. See page 21-22 of the 
> R-admin.pdf manual under heading "Setting up a package repository".

Yes, but you don't actually need to set up a repository locally: 
provided you have a PACKAGES file you can use contriburl= in 
install.packages (and as I read it, as 'Other Directory URL').

You can even re-generated a PACKAGES file by cd-ing to the packages 
directory and using

tools::write_PACKAGES('.', type="mac.binary")

but the advantages of using a PACKAGES file+install.packages 
(installing in the right order, picking up dependencies) are bigger 
for source packages and a complete local repository.

> Second, there is no need to place the .tgz files in a folder in /Applications.
> Also highly undesirable since /Applications is for applications and a system folder.
> I have never installed from downloaded files so I may be completely wrong.
> I have tested my recipe by downloading foreach_1.3.0.tgz and doing as described below (except that I installed the stuff in my personal R library).
> Place the  .tgz files (mac binary package files) in a directory in your user tree.
> For example ~/Temp/R
> Start R.app and set the above directory as the working directory (menu Misc, Change Working Directory or with setwd("~/Temp/R").
> Then for informative purposes do list.files() to check if all went well. You should see a list of the files you placed in that directory.
> Now enter .libPaths() to see in which slot the main R library is 
> located (Look for 
> "/Library/Frameworks/R.framework/Resources/library"; for me it's in 
> slot 2).
> Assume you want to install package foreach_1.3.0 (file foreach_1.3.0.tgz) then enter the following command in R.app
> install.packages(pkgs=c("foreach_1.3.0.tgz"),lib=.libPaths()[2],repos=NULL)

No c() is required for a single character string.  And you normally 
want to install into the first library tree, not into R's own tree, 
but if you do want the latter it is simply lib=.Library.

> Repeat for other packages ( you can also set pkgs=c("pkg1.tgz", "pkg2.tgz",...) )

Or simply (untested)

install.packages(dir('.', pattern="tgz$"), repos=NULL)

> good luck
> Berend

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-SIG-Mac mailing list