Search
Question: Unable to load/install rtracklayer (v1.33.2) on OS X (possibly SSL-related?)
0
gravatar for Peter Hickey
17 months ago by
Peter Hickey290
Johns Hopkins University, Baltimore, USA
Peter Hickey290 wrote:

I could do with some help figuring out why I can't load/properly install rtracklayer (v1.33.2) on my laptop running OS X. The error message suggests to me some issue with SSL, but I don't really understand what's going wrong. Please let me know if I can provide additional information to help solve this (I had to trim the output in order to get post under 15000 characters)

Help is much appreciated,

Pete
 

Just realised I have multiple versions of openssl  installed (unsure if helpful)

# Version installed by conda (and default on my system)
peters-mbp-2:~ Peter$ which openssl
/Users/Peter/anaconda/bin/openssl
peters-mbp-2:~ Peter$ openssl version
OpenSSL 1.0.2g  1 Mar 2016
# Version install by homebrew
peters-mbp-2:~ Peter$ /usr/local/Cellar/openssl/1.0.2d_1/bin/openssl version
OpenSSL 1.0.2d 9 Jul 2015

R details

> library(BiocInstaller)
Bioconductor version 3.4 (BiocInstaller 1.23.4), ?biocLite for help
> biocLite('rtracklayer')
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.23.4), R 3.3.0 (2016-05-03).
Installing package(s) ‘rtracklayer’
trying URL 'https://bioconductor.org/packages/3.4/bioc/bin/macosx/mavericks/contrib/3.3/rtracklayer_1.33.2.tgz'
Content type 'application/x-gzip' length 1908273 bytes (1.8 MB)
==================================================
downloaded 1.8 MB

The downloaded binary packages are in
    /var/folders/f1/6pjy5xbn0_9_7xwq6l7fj2yc0000gn/T//RtmpzfApQX/downloaded_packages

> suppressPackageStartupMessages(library(rtracklayer))
Error in dyn.load(file, DLLpath = DLLpath, ...) :
  unable to load shared object '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so, 6): Symbol not found: _BIO_new_ssl_connect
  Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so
  Expected in: flat namespace
 in /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so
Error: package or namespace load failed for ‘rtracklayer’

Trying to install from source ultimately leads to the same error (and looks like openssl isn't being picked up by configure?):
 

> biocLite("rtracklayer", type = "source")
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.23.4), R 3.3.0 (2016-05-03).
Installing package(s) ‘rtracklayer’
trying URL 'https://bioconductor.org/packages/3.4/bioc/src/contrib/rtracklayer_1.33.2.tar.gz'
Content type 'application/x-gzip' length 1378796 bytes (1.3 MB)
==================================================
downloaded 1.3 MB

* installing *source* package ‘rtracklayer’ ...
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for OPENSSL... no
configure: creating ./config.status
config.status: creating src/Makevars
** libs
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/opt/openssl/include -DUSE_SSL -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.3/Resources/library/S4Vectors/include" -I"/Library/Frameworks/R.framework/Versions/3.3/Resources/library/IRanges/include" -I"/Library/Frameworks/R.framework/Versions/3.3/Resources/library/XVector/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c S4Vectors_stubs.c -o S4Vectors_stubs.o
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/opt/openssl/include -DUSE_SSL -D_FILE_OFFSET_BITS=64 -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.3/Resources/library/S4Vectors/include" -I"/Library/Frameworks/R.framework/Versions/3.3/Resources/library/IRanges/include" -I"/Library/Frameworks/R.framework/Versions/3.3/Resources/library/XVector/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c IRanges_stubs.c -o IRanges_stubs.o

# Clip a bunch of output in order for post to have <= 15000 characters

installing to /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs
** R
** data
** demo
** inst
** preparing package for lazy loading
Creating a generic function for ‘offset’ from package ‘stats’ in package ‘rtracklayer’
Creating a generic function from function ‘uri’ in package ‘rtracklayer’
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
  unable to load shared object '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so, 6): Symbol not found: _BIO_new_ssl_connect
  Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so
  Expected in: flat namespace
 in /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer’

The downloaded source packages are in
    ‘/private/var/folders/f1/6pjy5xbn0_9_7xwq6l7fj2yc0000gn/T/RtmpzfApQX/downloaded_packages’
Warning message:
In install.packages(pkgs = doing, lib = lib, ...) :
  installation of package ‘rtracklayer’ had non-zero exit status

Here's my session info:
 

> sessionInfo()
R version 3.3.0 (2016-05-03)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.4 (El Capitan)

locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8

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

other attached packages:
[1] GenomicRanges_1.25.0 GenomeInfoDb_1.9.1   IRanges_2.7.1
[4] S4Vectors_0.11.2     BiocGenerics_0.19.0  BiocInstaller_1.23.4
[7] repete_0.0.0.9004    devtools_1.11.1

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.5                XVector_0.13.0
 [3] magrittr_1.5               GenomicAlignments_1.9.0
 [5] zlibbioc_1.19.0            BiocParallel_1.7.2
 [7] munsell_0.4.3              colorspace_1.2-6
 [9] stringr_1.0.0              plyr_1.8.3
[11] tools_3.3.0                SummarizedExperiment_1.3.2
[13] Biobase_2.33.0             withr_1.0.1
[15] digest_0.6.9               pryr_0.1.2
[17] bitops_1.0-6               codetools_0.2-14
[19] RCurl_1.95-4.8             memoise_1.0.0
[21] stringi_1.1.1              Rsamtools_1.25.0
[23] Biostrings_2.41.1          scales_0.4.0
[25] XML_3.98-1.4
ADD COMMENTlink modified 17 months ago by Michael Lawrence9.8k • written 17 months ago by Peter Hickey290
1
gravatar for Michael Lawrence
17 months ago by
United States
Michael Lawrence9.8k wrote:

When building from source on the Mac, it looks specifically for the homebrew installation, even if the pkg-config query fails. I guess the conda openssl is coming first on the search path, so you end up with a binary incompatibility. I think you can fix this by setting the DYLD_LIBRARY_PATH environment variable to point to the directory containing the homebrew-installed library. I guess you will want to do this inside .Renviron so that it always works.

One general concern is that if the distributed Mac binary depends on having openssl available at run time, many will not be able to load rtracklayer. We might want to consider not building with openssl support on the Mac, or perhaps not distributing a binary at all. Another idea would be to automatically install openssl via homebrew, although I'm not sure it's worth it given how SSL support for bigwig files is a minor feature of the package.

ADD COMMENTlink written 17 months ago by Michael Lawrence9.8k

Thanks, Michael, but I'm still having problems. I tried the following:

Add DYLD_LIBRARY_PATH="/usr/local/Cellar/openssl/1.0.2d_1/lib" to .Renviron and confirmed this set in a new R session. Re-ran biocLite("rtracklayer", type = "source") and hit same error. 

ADD REPLYlink modified 17 months ago • written 17 months ago by Peter Hickey290

Do a R CMD ldd path/to/your/rtracklayer.so, trying with and without the DYLD_LIBRARY_PATH. Might also try LD_LIBRARY_PATH.

ADD REPLYlink written 17 months ago by Michael Lawrence9.8k
$ R CMD ldd /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rtracklayer/libs/rtracklayer.so
/Library/Frameworks/R.framework/Resources/bin/Rcmd: line 62: exec: ldd: not found
ADD REPLYlink written 17 months ago by Peter Hickey290
1

Sorry you need otool -L instead of ldd on the Mac.  Actually, I tried that myself and found that the libraries were not linking at runtime, and I fixed it just now in rtracklayer 1.33.4. Not sure why it wasn't breaking for me.

ADD REPLYlink written 17 months ago by Michael Lawrence9.8k

Thanks Michael! Would it make sense to backport this change to release?

ADD REPLYlink written 17 months ago by Dan Tenenbaum ♦♦ 8.2k

The bug does not exist in release, since the homebrew support is only in devel (due to the potential for this sort of bug).

ADD REPLYlink written 17 months ago by Michael Lawrence9.8k

Wonderful, that fixed it. Installed from Bioconductor-mirror github repo (without setting DYLD_LIBRARY_PATH or modifying my default openssl or PATH). Thanks for your help, Michael.

ADD REPLYlink written 17 months ago by Peter Hickey290
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.2.0
Traffic: 384 users visited in the last hour