Search
Question: Unable to load/install rtracklayer (v1.33.2) on OS X (possibly SSL-related?)
0
2.3 years ago by
Peter Hickey380
Johns Hopkins University, Baltimore, USA
Peter Hickey380 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 2.3 years ago by Michael Lawrence10k • written 2.3 years ago by Peter Hickey380 1 2.3 years ago by United States Michael Lawrence10k 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 2.3 years ago by Michael Lawrence10k 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 2.3 years ago • written 2.3 years ago by Peter Hickey380 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 2.3 years ago by Michael Lawrence10k $ 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
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.

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

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

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.