alan ocallaghan
alan ocallaghan

Reputation: 3038

R package BH not found for Bioconductor package RBGL

I have had difficulties installing RBGL (Bioconductor Boost library) after upgrading. The error is encountered when R CMD build tries to build the (source) package. Running ./configure from the package root works fine; unfortunately, R CMD build cleans the package before running configure again.

Exact error is:

checking R package BH ... no
configure: error: R package BH not found.
ERROR: configuration failed for package ‘RBGL’

Running ./configure manually I get:

checking R package BH ... yes
configure: creating ./config.status
config.status: creating src/Makevars

In particular, the error arises from this line: AX_R_PACKAGE([BH],,[${R}]). Notably, if I remove this line from the configure script, the package builds and installs just fine.

fwiw:

> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.3 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C               LC_TIME=en_GB.UTF-8       
 [4] LC_COLLATE=en_GB.UTF-8     LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
 [7] LC_PAPER=en_GB.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

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

other attached packages:
[1] BH_1.69.0-1

loaded via a namespace (and not attached):
[1] BiocManager_1.30.4 compiler_3.6.1     tools_3.6.1        parallel_3.6.1    

Upvotes: 0

Views: 425

Answers (1)

Dirk is no longer here
Dirk is no longer here

Reputation: 368221

Few quick things:

  • You need to show us the error

  • I am one of the BH authors and its maintainers, and I develop on Ubuntu; please trust me when I say it works.

  • When I try right now (using R 3.6.1 like you) I get an error from BioCManager as shown below.

  • You could try BioConductor devel for RBGL as per this page

Error Message
R> BiocManager::install("RBGL")
Error: Bioconductor version '3.8' requires R version '3.5'; \
                                    see https://bioconductor.org/install
R> 

Edit: Looking further into this all it took was two manual wget downloads from the package pages and an installation:

edd@rob:~$ cd /tmp
edd@rob:/tmp$ wget -q https://bioconductor.org/packages/release/bioc/src/contrib/RBGL_1.60.0.tar.gz
edd@rob:/tmp$ wget -q https://bioconductor.org/packages/release/bioc/src/contrib/graph_1.62.0.tar.gz
edd@rob:/tmp$ install.r graph_1.62.0.tar.gz RBGL_1.60.0.tar.gz  # helper from littler 
* installing *source* package ‘graph’ ...
** using staged installation

** libs
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fpic  -g -O3 -Wall -pipe -pedantic  -std=gnu99 -c graph.c -o graph.o
ccache gcc -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o graph.so graph.o -L/usr/lib/R/lib -lR
mv graph.so BioC_graph.so
installing to /usr/local/lib/R/site-library/00LOCK-graph/00new/graph/libs
** R
[... few lines removd ***]
** testing if installed package keeps a record of temporary installation path
* DONE (graph)
* installing *source* package ‘RBGL’ ...
** using staged installation
checking R package BH ... yes
configure: creating ./config.status
config.status: creating src/Makevars
** libs
ccache g++ -I"/usr/share/R/include" -DNDEBUG -I/usr/local/lib/R/site-library/BH/include  -I"/usr/local/lib/R/site-library/BH/include"   -fpic  -g -O3 -Wall -pipe -pedantic  -c bbc.cpp -o bbc.o
[... lots of output omitted ...]
** testing if installed package keeps a record of temporary installation path
* DONE (RBGL)
edd@rob:/tmp$ 

Edit 2: As you mention the issue with configure, I re-ran this by hand after unpacking the tarball. And, unsurprisingly given that the build worked for me, it finds it.

edd@rob:/tmp/RBGL$ ./configure
checking R package BH ... yes
configure: creating ./config.status
config.status: creating src/Makevars
edd@rob:/tmp/RBGL$

Where is your BH package installed, and why might your session find it but configire does not? Did you run one as root and one as you?

Upvotes: 4

Related Questions