Skip to content

[Rcpp-devel] Unable to install RcppArmadillo from CRAN or from SVN archive on Ubuntu 10.10

6 messages · Douglas Bates, Sean Robert McGuffee, Dirk Eddelbuettel

#
I have been facing this problem for months now and I still don't know
why other users of Ubuntu 10.10 using

$ g++ --version
g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

can install RcppArmadillo and I can't.  Most recently I tried to
install the source package from CRAN and got the same error as I have
been getting for months.
Installing package(s) into ?/home/bates/R/x86_64-unknown-linux-gnu-library/2.13?
(as ?lib? is unspecified)
trying URL 'http://cran.fhcrc.org/src/contrib/RcppArmadillo_0.2.19.tar.gz'
Content type 'application/x-gzip' length 259638 bytes (253 Kb)
opened URL
==================================================
downloaded 253 Kb

* installing *source* package ?RcppArmadillo? ...
** libs
ccache g++ -I/usr/share/R/include
-I"/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/include"
-I../inst/include -fpic  -g -Wall -pipe -pedantic -c RcppArmadillo.cpp
-o RcppArmadillo.o
ccache g++ -I/usr/share/R/include
-I"/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/include"
-I../inst/include -fpic  -g -Wall -pipe -pedantic -c fastLm.cpp -o
fastLm.o
g++ -shared -o RcppArmadillo.so RcppArmadillo.o fastLm.o
-L/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/lib -lRcpp
-Wl,-rpath,/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/lib
-llapack -lblas -lgfortran -lm -L/usr/lib64/R/lib -lR
installing to /home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices ...
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
  unable to load shared object
'/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo/libs/RcppArmadillo.so':
  /home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo/libs/RcppArmadillo.so:
undefined symbol: _ZN4arma12arma_version5majorE
Error: loading failed
Execution halted
ERROR: loading failed
* removing ?/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo?
* restoring previous
?/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo?

The downloaded packages are in
	?/tmp/RtmpoJ3I0u/downloaded_packages?
Warning message:
In install.packages("RcppArmadillo", repos = "http://cran.fhcrc.org") :
  installation of package 'RcppArmadillo' had non-zero exit status
R version 2.13.0 (2011-04-13)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=C              LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] tools_2.13.0


The version of the source file RcppArmadillo/src/RcppArmadillo.cpp
that I have (SVN version 3012 for the file - the source code package
is at SVN version 3023) does indeed use arma::version::major,
arma::version:minor and arma::version::patch but they aren't defined
any place that I can see.

What am I missing here?
#
By way of a postscript, "R CMD check Rcpp" still fails for me on a
segmentation fault in the unit test called test.sugar.asvector on this
setup (Ubuntu 10.10, g++ 4.4.5 and R-2.13.0 installed from the CRAN
repository for Ubuntu packages).


Executing test function test.sugar.asvector  ...
 *** caught segfault ***
address 0x3, cause 'memory not mapped'

Traceback:
 1: .Primitive(".Call")(<pointer: 0x7fdd3f2ae4c7>, x, y, z)
 2: fx(1:4, 1:5, diag(1:5))
 3: func()
...

I'm thinking of becoming a theoretician.  The worst that can happen by
way of hardware/software problems is your pencil point breaking.
On Thu, Apr 28, 2011 at 2:53 PM, Douglas Bates <bates at stat.wisc.edu> wrote:
#
I don't know if this is useful, but the results from a grep I did on a
different system suggest that include/armadillo_bits/arma_version.hpp might
be a file to look into:

grep -i arma * */* */*/* |grep -i ver
DESCRIPTION:        Armadillo library (currently version 1.1.8). Thus users
do not
DESCRIPTION: Armadillo is licensed under the GNU LGPL version 3 or later,
while
NEWS:    o   Upgraded to Armadillo Version 1.1.8   "Kangaroo Steak"
NEWS:    o   Upgraded to Armadillo Version 1.1.6   ?Baby Carpet Shark?
NEWS:    o   Upgraded to Armadillo Version 1.1.4   ?Manta Lodge?
NEWS:    o   Upgraded to Armadillo Version 1.1.2   ?Flood Kayak?
NEWS:    o   Upgraded to Armadillo Version 1.1.0   ?Climate Vandal?
html/00Index.html:</div><h2>Documentation for package
&lsquo;RcppArmadillo&rsquo; version 0.2.16</h2>
include/armadillo:  #include "armadillo_bits/arma_version.hpp"
unitTests/runTests.R:    stop( "RcppArmadillo unit tests need at least the
version 0.3.5 of inline" )
include/armadillo_bits/arma_version.hpp:// This file is part of the
Armadillo C++ library.
include/armadillo_bits/arma_version.hpp://! \addtogroup arma_version
include/armadillo_bits/arma_version.hpp:#define ARMA_VERSION_MAJOR 1
include/armadillo_bits/arma_version.hpp:#define ARMA_VERSION_MINOR 1
include/armadillo_bits/arma_version.hpp:#define ARMA_VERSION_PATCH 8
include/armadillo_bits/arma_version.hpp:#define ARMA_VERSION_NAME  "Kangaroo
Steak"
include/armadillo_bits/arma_version.hpp:struct arma_version
include/armadillo_bits/arma_version.hpp:  static const unsigned int major =
ARMA_VERSION_MAJOR;
include/armadillo_bits/arma_version.hpp:  static const unsigned int minor =
ARMA_VERSION_MINOR;
include/armadillo_bits/arma_version.hpp:  static const unsigned int patch =
ARMA_VERSION_PATCH;
include/armadillo_bits/arma_version.hpp:    const char* nickname =
ARMA_VERSION_NAME;
include/armadillo_bits/arma_version.hpp:    ss << arma_version::major
include/armadillo_bits/arma_version.hpp:       << arma_version::minor
include/armadillo_bits/arma_version.hpp:       << arma_version::patch
include/armadillo_bits/arrayops_proto.hpp:  convert_cx_scalar(out_eT& out,
const in_eT&  in, const typename arma_not_cx<out_eT>::result* junk1 = 0,
const typename arma_not_cx< in_eT>::result* junk2 = 0);
include/armadillo_bits/arrayops_proto.hpp:  convert_cx_scalar(out_eT& out,
const std::complex<in_T>& in, const typename arma_not_cx<out_eT>::result*
junk = 0);
include/armadillo_bits/compiler_setup.hpp:  #define ARMA_GCC_VERSION
(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
include/armadillo_bits/compiler_setup.hpp:  #if (ARMA_GCC_VERSION >= 40200)
include/armadillo_bits/compiler_setup.hpp:  #if (ARMA_GCC_VERSION >= 40300)
include/armadillo_bits/compiler_setup.hpp:  #undef ARMA_GCC_VERSION
include/armadillo_bits/debug.hpp:        const char* nickname      =
ARMA_VERSION_NAME;
include/armadillo_bits/debug.hpp:                  << arma_version::major <<
'.' << arma_version::minor << '.' << arma_version::patch
.
.
.
On 4/28/11 4:14 PM, "Douglas Bates" <bates at stat.wisc.edu> wrote:

            
#
Hi Doug,

We're in the middle of our Rcpp workshop so this is timely :)
On 28 April 2011 at 14:53, Douglas Bates wrote:
| I have been facing this problem for months now and I still don't know
| why other users of Ubuntu 10.10 using
| 
| $ g++ --version
| g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
| Copyright (C) 2010 Free Software Foundation, Inc.
| This is free software; see the source for copying conditions.  There is NO
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
| 
| can install RcppArmadillo and I can't.  Most recently I tried to
| install the source package from CRAN and got the same error as I have
| been getting for months.
| 
| 
| > install.packages("RcppArmadillo", repos="http://cran.fhcrc.org")
| Installing package(s) into ?/home/bates/R/x86_64-unknown-linux-gnu-library/2.13?
| (as ?lib? is unspecified)
| trying URL 'http://cran.fhcrc.org/src/contrib/RcppArmadillo_0.2.19.tar.gz'
| Content type 'application/x-gzip' length 259638 bytes (253 Kb)
| opened URL
| ==================================================
| downloaded 253 Kb
| 
| * installing *source* package ?RcppArmadillo? ...
| ** libs
| ccache g++ -I/usr/share/R/include
| -I"/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/include"
| -I../inst/include -fpic  -g -Wall -pipe -pedantic -c RcppArmadillo.cpp
| -o RcppArmadillo.o
| ccache g++ -I/usr/share/R/include
| -I"/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/include"
| -I../inst/include -fpic  -g -Wall -pipe -pedantic -c fastLm.cpp -o
| fastLm.o
| g++ -shared -o RcppArmadillo.so RcppArmadillo.o fastLm.o
| -L/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/lib -lRcpp
| -Wl,-rpath,/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/Rcpp/lib
| -llapack -lblas -lgfortran -lm -L/usr/lib64/R/lib -lR
| installing to /home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo/libs
| ** R
| ** inst
| ** preparing package for lazy loading
| ** help
| *** installing help indices
| ** building package indices ...
| ** testing if installed package can be loaded
| Error in dyn.load(file, DLLpath = DLLpath, ...) :
|   unable to load shared object
| '/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo/libs/RcppArmadillo.so':
|   /home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo/libs/RcppArmadillo.so:
| undefined symbol: _ZN4arma12arma_version5majorE

You know, Jan has the exact same issue and I blamed the Mac.  Maybe the
difference is having Armadillo or not.  This all works on my box, so could
you just install Ubuntu's armadillo package?

It still works for me ... and that may be a part of the changes.

Cheers from a seminar room at UIC,   Dirk

| Error: loading failed
| Execution halted
| ERROR: loading failed
| * removing ?/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo?
| * restoring previous
| ?/home/bates/R/x86_64-unknown-linux-gnu-library/2.13/RcppArmadillo?
| 
| The downloaded packages are in
| 	?/tmp/RtmpoJ3I0u/downloaded_packages?
| Warning message:
| In install.packages("RcppArmadillo", repos = "http://cran.fhcrc.org") :
|   installation of package 'RcppArmadillo' had non-zero exit status
| > sessionInfo()
| R version 2.13.0 (2011-04-13)
| Platform: x86_64-pc-linux-gnu (64-bit)
| 
| locale:
|  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
|  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
|  [5] LC_MONETARY=C              LC_MESSAGES=en_US.UTF-8
|  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
|  [9] LC_ADDRESS=C               LC_TELEPHONE=C
| [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
| 
| attached base packages:
| [1] stats     graphics  grDevices utils     datasets  methods   base
| 
| loaded via a namespace (and not attached):
| [1] tools_2.13.0
| 
| 
| The version of the source file RcppArmadillo/src/RcppArmadillo.cpp
| that I have (SVN version 3012 for the file - the source code package
| is at SVN version 3023) does indeed use arma::version::major,
| arma::version:minor and arma::version::patch but they aren't defined
| any place that I can see.
| 
| What am I missing here?
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
#
I just realized what is probably happening.  I have the Ubuntu
armadillo package installed and that version of the header files may
be being picked up ahead of the version in the package.
On Thu, Apr 28, 2011 at 3:24 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
#
On Thu, Apr 28, 2011 at 3:26 PM, Douglas Bates <bates at stat.wisc.edu> wrote:
Oops.  Scratch that theory.  I don't have the Ubuntu libarmadillo-dev
package installed now.

Back to the drawing board.