FAQ
G'day all,

I found the following snippet in the NEWS file for R 2.14.1:

? R CMD INSTALL will now do a test load for all sub-architectures
for which code was compiled (rather than just the primary
sub-architecture).

This seems to have the following (unintended?) consequence:

Most of my machines are running some version of 64-bit Ubuntu and I do
not necessarily have all 32-bit libraries installed on these. In
particular, the 32-bit TCL/Tk libraries are frequently missing. Thus,
on such a machine the 32-bit sub-architecture of R does not have the
capability to use TCL/tk and the tcltk package is only installed for the
primary sub-architecture (64-bit).

Until now, I could always install the Rcmdr package on these machine.
However, this is no longer possible in 2.14.1. Now attempts to install
Rcmdr on such a machine ends with:

** testing if installed package can be loaded
*** arch - 32
Error : package 'tcltk' is not installed for 'arch2'
Error: loading failed
Execution halted
*** arch - 64
ERROR: loading failed for '32'
* removing '/home/opt/R/R-2.14.1/lib64/R/library/Rcmdr'

Is there a way of installing Rcmdr only for the 64-bit primary
sub-architecture? Or do I really have to install the 32-bit versions
of the TCL/Tk libraries and then reinstall R from scratch?

Cheers,

Berwin

Search Discussions

  • Simon Urbanek at Jan 11, 2012 at 1:53 pm
    try --no-multiarch
    On Jan 11, 2012, at 8:16 AM, Berwin A Turlach wrote:

    G'day all,

    I found the following snippet in the NEWS file for R 2.14.1:

    ? R CMD INSTALL will now do a test load for all sub-architectures
    for which code was compiled (rather than just the primary
    sub-architecture).

    This seems to have the following (unintended?) consequence:

    Most of my machines are running some version of 64-bit Ubuntu and I do
    not necessarily have all 32-bit libraries installed on these. In
    particular, the 32-bit TCL/Tk libraries are frequently missing. Thus,
    on such a machine the 32-bit sub-architecture of R does not have the
    capability to use TCL/tk and the tcltk package is only installed for the
    primary sub-architecture (64-bit).

    Until now, I could always install the Rcmdr package on these machine.
    However, this is no longer possible in 2.14.1. Now attempts to install
    Rcmdr on such a machine ends with:

    ** testing if installed package can be loaded
    *** arch - 32
    Error : package 'tcltk' is not installed for 'arch2'
    Error: loading failed
    Execution halted
    *** arch - 64
    ERROR: loading failed for '32'
    * removing '/home/opt/R/R-2.14.1/lib64/R/library/Rcmdr'

    Is there a way of installing Rcmdr only for the 64-bit primary
    sub-architecture? Or do I really have to install the 32-bit versions
    of the TCL/Tk libraries and then reinstall R from scratch?

    Cheers,

    Berwin

    ______________________________________________
    R-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/r-devel
  • Berwin A Turlach at Jan 11, 2012 at 2:00 pm
    G'day Simon,

    On Wed, 11 Jan 2012 08:53:27 -0500
    Simon Urbanek wrote:
    try --no-multiarch
    Thanks, works perfectly.

    And now I notice that this option is given as an example in the help
    file for install.packages() as a possible value that one wants to pass
    to 'R CMD INSTALL'. Could kick myself. Well, it is always easier to
    find something when one knows what one is looking for... :)

    Cheers,

    Berwin
  • Prof Brian Ripley at Jan 11, 2012 at 3:16 pm

    On 11/01/2012 14:00, Berwin A Turlach wrote:
    G'day Simon,

    On Wed, 11 Jan 2012 08:53:27 -0500
    Simon Urbanekwrote:
    try --no-multiarch
    Thanks, works perfectly.

    And now I notice that this option is given as an example in the help
    file for install.packages() as a possible value that one wants to pass
    to 'R CMD INSTALL'. Could kick myself. Well, it is always easier to
    find something when one knows what one is looking for... :)
    There are good reasons for the change in logic. Far too often people
    have installed packages that actually only work for one architecture,
    and then distributed them as binary packages. Most of us really do want
    to know if the package works at the end of INSTALL. So it seemed a lot
    safer that you need to actually say that you intended to install only
    one architecture.

    And BTW, test-loading has saved me many times blowing away a working
    package for one that does not work, so it has been far more useful than
    I anticipated when I added it.

    --
    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
  • Uwe Ligges at Jan 11, 2012 at 2:08 pm

    On 11.01.2012 14:16, Berwin A Turlach wrote:
    G'day all,

    I found the following snippet in the NEWS file for R 2.14.1:

    ? R CMD INSTALL will now do a test load for all sub-architectures
    for which code was compiled (rather than just the primary
    sub-architecture).

    This seems to have the following (unintended?) consequence:

    Most of my machines are running some version of 64-bit Ubuntu and I do
    not necessarily have all 32-bit libraries installed on these. In
    particular, the 32-bit TCL/Tk libraries are frequently missing. Thus,
    on such a machine the 32-bit sub-architecture of R does not have the
    capability to use TCL/tk and the tcltk package is only installed for the
    primary sub-architecture (64-bit).

    Until now, I could always install the Rcmdr package on these machine.
    However, this is no longer possible in 2.14.1. Now attempts to install
    Rcmdr on such a machine ends with:

    ** testing if installed package can be loaded
    *** arch - 32
    Error : package 'tcltk' is not installed for 'arch2'
    Error: loading failed
    Execution halted
    *** arch - 64
    ERROR: loading failed for '32'
    * removing '/home/opt/R/R-2.14.1/lib64/R/library/Rcmdr'

    Is there a way of installing Rcmdr only for the 64-bit primary
    sub-architecture? Or do I really have to install the 32-bit versions
    of the TCL/Tk libraries and then reinstall R from scratch?


    Have you read

    R CMD INSTALL --help ?

    there is, among other, the line:
    --no-multiarch build only the main architecture

    or if you want to build and don't care about loading:
    --no-test-load skip test of loading installed package

    Uwe Ligges


    Cheers,

    Berwin

    ______________________________________________
    R-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/r-devel

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupr-devel @
categoriesr
postedJan 11, '12 at 1:16p
activeJan 11, '12 at 3:16p
posts5
users4
websiter-project.org
irc#r

People

Translate

site design / logo © 2022 Grokbase