[R-sig-Debian] why no libRblas.so in ubuntu packages on CRAN?

Paul Johnson pauljohn32 at gmail.com
Wed Mar 3 05:44:27 CET 2010


Hi, everybody.

I notice debian packages for Ubuntu on CRAN are missing "libRblas.so"
and I'm trying to find out why.

Why do I care?  We are working in an hpc project in a CentOS Linux
cluster.  That led me to the question of "which BLAS is fastest?"
Dirk E referred me this morning to the R admin manual.  The standard R
compilation creates a shared blas library libRblas.so  and then one
can easily 'swap in a different shared library' to experiment with
GotoBLAS2 or Atlas or whatnot.  I found that quite amazing!

Then I booted up my Ubuntu laptop to try this out. I have the Ubuntu
deb packages from CRAN, version 2.10.  In r-core-base, there is no
libRblas.so.  I have:

ii  r-base                                     2.10.1-2karmic0
                             GNU R statistical computation and
graphics s
ii  r-base-core                                2.10.1-2karmic0
                             GNU R core of statistical computation and
gr
ii  r-base-dev                                 2.10.1-2karmic0
                             GNU R installation of auxiliary GNU R
packag

$ dpkg -L r-base-core r-base-dev r-base | grep .so
/etc/ld.so.conf.d
/usr/lib/R/library/splines/libs/splines.so
/usr/lib/R/library/grDevices/libs/grDevices.so
/usr/lib/R/library/methods/libs/methods.so
/usr/lib/R/library/stats/libs/stats.so
/usr/lib/R/library/tcltk/exec/console.tcl
/usr/lib/R/library/tcltk/libs/tcltk.so
/usr/lib/R/library/grid/libs/grid.so
/usr/lib/R/library/tools/libs/tools.so
/usr/lib/R/lib/libR.so
/usr/lib/R/modules/R_X11.so
/usr/lib/R/modules/vfonts.so
/usr/lib/R/modules/internet.so
/usr/lib/R/modules/lapack.so
/usr/share/R/doc/html/resources.html
/etc/ld.so.conf.d/libR.conf

As far as I can see, the Ubuntu CRAN repositories are not configured
with a deb-src option. So I can't  get the exact source code used to
create the Ubuntu packages.  Hopefully, the packager did not make
changes in the Debian source package.  The CRAN Debian repositories do
answer to deb-src requests for Debian "lenny."

I've been inspecting that for quitte a while.  The Debian build
script's configure statement does not explicitly invoke
--disable-BLAS-shlib.

       ./configure --prefix=/usr                       \
                    --with-cairo                        \
                    --with-jpeglib                      \
                    --with-pango                        \
                    --with-png                          \
                    --with-readline                     \
                    --with-tcltk                        \
                    --with-system-bzlib                 \
                    --with-system-pcre                  \
                    --with-system-zlib                  \
                    --mandir=/usr/share/man             \
                    --infodir=/usr/share/info           \
                    --datadir=/usr/share/R/share        \
                    --includedir=/usr/share/R/include   \
                    $(atlas)            \
                    $(lapack)           \
                    --without-gnome                     \
                    --enable-R-profiling                \
                    --enable-R-shlib                    \
                    --enable-memory-profiling           \
                    --without-recommended-packages      \
                    --build $(buildarch)

$(atlas) draws its value from the rules file

atlas           = --with-blas

Similarly, $(lapack)

lapack          = --with-lapack


I rebuilt the debian packages with the source from lennycran and, as
in Ubuntu, there's no libRblas.so.

$ dpkg -c r-base-core_2.10.1-2~lennycran.0_i386.deb  | grep libRblas.so

returns nothing.


I DO get libRblas.so if I make 3 changes in the debian/rules file. I deleted
1) $(atlas)
2) $(lapack), and
3) --enable-R-shlib.

I believe the R-admin manual discourages the --with-lapack option
altogether, and the discussion of that option is somewhat confusing.
--with-lapack does not mean "use lapack", it means by-pass the lapack
that R provides in its code and try to use lapack from an external
library (presumably, the lapack provided by the blas implementation).
I believe that putting --with-lapack without adding
=/some/lib/location may confuse the configure script.  I make change 3
because R-admin discourages the R-shlib option for most users.

After that, the package I build DOES include libRblas.so

$ dpkg -c r-base-core_2.10.1-2~lennycran.0_i386.deb  | grep libRblas.so
-rw-r--r-- root/root    165132 2010-03-02 22:02 ./usr/lib/R/lib/libRblas.so

I've chased this one around for a couple of hours, so I think I've
done my "due diligence."

pj
-- 
Paul E. Johnson
Professor, Political Science
1541 Lilac Lane, Room 504
University of Kansas



More information about the R-SIG-Debian mailing list