[Rd] MacOS X: update.packages(type="mac.binary") fails (PR#7836)

jarioksa at sun3.oulu.fi jarioksa at sun3.oulu.fi
Wed May 4 09:51:26 CEST 2005


Message 2 of today: it works now.

After re-installing R.app from the same R-2.1.0.dmg file, and
fixInNamespace'ing(*) install.packages(), I managed to update 23
outdated packages from CRAN binaries for MacOS X. What I did was to:

1. change call to .install.macbinaries() into call to install.binaries()
in install.packages(). install.binaries() is a function defined
utils/R/aqua/GUI.R. 
2. I also had to remove argument 'dependencies' since that is not
defined in install.binaries() of utils/aqua. 

It seems that install.binaries of utils/aqua is mentioned in several
places in R sources, but .install.macbinary() appears only in one place,
so changing install.packages() is less hassle than changing
utils/R/aqua/GUI.R and all other places (although this looks more
natural). 

This still requires a fix in passing type in update.packages() that B.
Ripley already did for R 2.1.1, or setting 
options(pkgType="mac.binary").

cheers, jari oksanen

(*) "Object-oriented programming is an exceptionally bad idea which
could only have originated in California." E. Dijkstra

On Tue, 2005-05-03 at 16:14 +0100, Prof Brian Ripley wrote:
> Binary installs are AFAIK only supported in the GUI, where the default is
> as documented.  So .install.macbinary() is not loaded except in the GUI.
> 
> The reason is that those binaries are tied to that particular build of R,
> and will not work with a general build on MacOS X.
> 
> I would expect this to work from the command-line in the GUI console, and
> had believed it had been tested there.
> 
> 
> On Tue, 3 May 2005 jari.oksanen at oulu.fi wrote:
> 
> > Full_Name: Jari Oksanen
> > Version: R 2.1.0
> > OS: MacOS 10.3.9
> > Submission from: (NULL) (130.231.102.145)
> >
> >
> > For various reasons (which need not be expanded here) I have tried to update my
> > long neglected R in MacOS X using handy command line tool update.packages()
> > using readily available binaries of contributed packages at CRAN. However, this
> > fails with message saying that packages xxxx_*_tar.gz is not found at the server
> > (HTTP error 404). Obviously, the package name is expanded wrongly as the binary
> > packages for MacOS X have type *.tgz. However, this seems not be the problem,
> > but there are two other problems:
> >
> > 1. update.packages does not transfer the value of 'type' to the next function
> > install.packages, but install.packages uses the value of getOption("pkgType")
> > which seems to be "source" in CRAN binary of MacOS X (contrary to documentation
> > at ?options).
> >
> > 2. If this is corrected, or first set options(pkgType="mac.binary"), the update
> > fails for missing function .install.macbinary().
> >
> > The first problem is easy to correct:
> >
> > --- update.packages.R   2005-05-03 17:13:36.000000000 +0300
> > +++ jarioksa.update.packages.R  2005-05-03 17:13:58.000000000 +0300
> > @@ -59,5 +59,5 @@
> >          install.packages(update[, "Package"], instlib, contriburl =
> > contriburl,
> >              method = method, available = available, destdir = destdir,
> > -            installWithVers = installWithVers, type)
> > +            installWithVers = installWithVers, type = type)
> >      }
> >  }
> >
> >
> > For the second, problem, I don't know what to do. grepping
> > R-patched_2005-05-03.tar.gz source found only one instance of
> > .install.macbinary(): the failed call in
> > R-patched/src/library/utils/R/packages2.R. I couldn't find the definition of the
> > function.
> >
> > Do I really have to use GUI? Uh.
> >
> > cheers, jari oksanen
> >
> > ______________________________________________
> > R-devel at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
> >
>



More information about the R-devel mailing list