Installing packages from source for all installed sub-architectures
Sorry, it appears that --merge-multiarch never got released except for Windows. We can certainly finish that off.
On 06/03/2012 06:31, Dan Tenenbaum wrote:
On Mon, Mar 5, 2012 at 10:22 PM, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
On 06/03/2012 01:24, Simon Urbanek wrote:
Dan, On Mar 5, 2012, at 7:09 PM, Dan Tenenbaum wrote:
Hello,
Are there plans to modify install.packages() on Mac so that if
type="source", the package is installed for all installed
sub-architectures?
This works for Windows.
Currently,
install.packages("mypkg", type="source")
**may** do the right thing, depending on what type of native code the
package has, whether if has a configure script., etc, but there's no
guarantee.
The same is true for Windows - to my best knowledge the rules are the
same on all platforms -- Makefile or configure prevent a package from being built for more than one architecture, because they may modify the sources in-place and thus the package can only be built once. The only difference I'm aware of is that some Windows packages use configure.win for things other than configuration, so binary maintainers may choose to ignore those but that is not the default AFAIK. That's my understanding too -- a small list of such packages is already known to INSTALL.
Cheers, Simon
I might add that even installing a binary is not guaranteed to give you .so files for all sub-architectures. CRAN and Bioconductor create multi-arch binaries, but other package distributors may not do this, in fact, they likely won't, since the procedure for generating such binaries is not part of R and is therefore not documented as such.
Eh? The recommended approach, INSTALL --merge-multiarch, _is_ part of R. Although I rarely use it on Macs, AFAIK it works equally well there as on Windows. And install.packages() takes arguments to be passed to INSTALL via INSTALL_opts .
I never knew that --merge-multiarch was available for Macs. I tested it and it seems to work. I assumed that it was not available for Macs because it appears in the "Windows only" section of R CMD INSTALL --help on my R (R version 2.15.0 alpha (2012-03-02 r58567). Perhaps --merge-multiarch can be moved out of the "Windows" only section of R CMD INSTALL --help? Thanks, Dan
There are of course ways to work around this. But it would be nice not to have to work around it, and it would be very nice if a single command could install a package (and, importantly, all its dependencies) from source for all available architectures.
We are not so far off that, but can only workaround _some_ of the strange things package maintainers do. For example, all but 0.5% of CRAN packages which install at all install 'out of the box' on Windows: the exceptions need --multi-arch. On a Mac the figure appears to be 1-2%. My experience is that there is a _tiny_ small proportion of R users installing from source on systems with multiple architectures who care about more than one architecture. (It is a long while since I used 32-bit R on Windows, Mac or Linux except as an R developer to test things.) And I think most of those people are knowledgeable enough to write their own scripts to cover the exceptions. -- 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
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