[R-SIG-Mac] Installing packages from source for all installed sub-architectures

Dan Tenenbaum dtenenba at fhcrc.org
Tue Mar 6 07:31:57 CET 2012


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



More information about the R-SIG-Mac mailing list