First time I try to install mzR using Bioconductor or
R CMD INSTALL --no-clean-on-error --no-multiarch mzR_2.3.1.tar.gz
and I always get message:
...
gcc -std=gnu99 -I/master/eugeneid/bin/R-3.2.1/include -DNDEBUG -D_LARGEFILE_SOURCE -I./boost_aux/ -I. -DHAVE_PWIZ_MZML_LIB -D_NODEBUG -DWITHOUT_MZ5 -I./boost `nc-config --cflags || /bin/true` -I/usr/local/include -I"/master/eugeneid/bin/R-3.2.1/library/Rcpp/include" -I"/master/eugeneid/bin/R-3.2.1/library/zlibbioc/include" -fpic -g -O2 -c R_init_mzR.c -o R_init_mzR.o
g++ -shared -L/usr/local/lib64 -o mzR.so cramp.o ramp_base64.o ramp.o RcppRamp.o RcppRampModule.o rnetCDF.o RcppPwiz.o RcppPwizModule.o RcppIdent.o RcppIdentModule.o ./boost/system/src/error_code.o ./boost/regex/src/posix_api.o ./boost/regex/src/fileiter.o ./boost/regex/src/regex_raw_buffer.o ./boost/regex/src/cregex.o ./boost/regex/src/regex_debug.o ./boost/regex/src/instances.o ./boost/regex/src/icu.o ./boost/regex/src/usinstances.o ./boost/regex/src/regex.o ./boost/regex/src/wide_posix_api.o ./boost/regex/src/regex_traits_defaults.o ./boost/regex/src/winstances.o ./boost/regex/src/wc_regex_traits.o ./boost/regex/src/c_regex_traits.o ./boost/regex/src/cpp_regex_traits.o ./boost/regex/src/static_mutex.o ./boost/regex/src/w32_regex_traits.o ./boost/iostreams/src/zlib.o ./boost/iostreams/src/file_descriptor.o ./boost/thread/src/pthread/once.o ./boost/thread/src/pthread/thread.o ./boost/filesystem/src/operations.o ./boost/filesystem/src/path.o ./boost/filesystem/src/utf8_codecvt_facet.o ./pwiz/data/msdata/Version.o ./pwiz/data/common/MemoryIndex.o ./pwiz/data/common/CVTranslator.o ./pwiz/data/common/cv.o ./pwiz/data/common/ParamTypes.o ./pwiz/data/common/BinaryIndexStream.o ./pwiz/data/common/diff_std.o ./pwiz/data/common/Unimod.o ./pwiz/data/msdata/SpectrumList_MGF.o ./pwiz/data/msdata/DefaultReaderList.o ./pwiz/data/msdata/ChromatogramList_mzML.o ./pwiz/data/msdata/examples.o ./pwiz/data/msdata/Serializer_mzML.o ./pwiz/data/msdata/Serializer_MSn.o ./pwiz/data/msdata/Reader.o ./pwiz/data/msdata/Serializer_MGF.o ./pwiz/data/msdata/Serializer_mzXML.o ./pwiz/data/msdata/SpectrumList_mzML.o ./pwiz/data/msdata/SpectrumList_MSn.o ./pwiz/data/msdata/BinaryDataEncoder.o ./pwiz/data/msdata/Diff.o ./pwiz/data/msdata/MSData.o ./pwiz/data/msdata/References.o ./pwiz/data/msdata/SpectrumList_mzXML.o ./pwiz/data/msdata/IO.o ./pwiz/data/msdata/SpectrumList_BTDX.o ./pwiz/data/msdata/SpectrumInfo.o ./pwiz/data/msdata/RAMPAdapter.o ./pwiz/data/msdata/LegacyAdapter.o ./pwiz/data/msdata/SpectrumIterator.o ./pwiz/data/msdata/MSDataFile.o ./pwiz/data/msdata/MSNumpress.o ./pwiz/data/msdata/SpectrumListCache.o ./pwiz/data/msdata/Index_mzML.o ./pwiz/data/identdata/IdentDataFile.o ./pwiz/data/identdata/IdentData.o ./pwiz/data/identdata/DefaultReaderList.o ./pwiz/data/identdata/Reader.o ./pwiz/data/identdata/Serializer_protXML.o ./pwiz/data/identdata/Serializer_pepXML.o ./pwiz/data/identdata/Serializer_mzid.o ./pwiz/data/identdata/IO.o ./pwiz/data/identdata/Version.o ./pwiz/data/identdata/References.o ./pwiz/data/proteome/Modification.o ./pwiz/data/proteome/Digestion.o ./pwiz/data/proteome/Peptide.o ./pwiz/data/proteome/AminoAcid.o ./pwiz/utility/minimxml/XMLWriter.o ./pwiz/utility/minimxml/SAXParser.o ./pwiz/utility/chemistry/Chemistry.o ./pwiz/utility/chemistry/ChemistryData.o ./pwiz/utility/chemistry/MZTolerance.o ./pwiz/utility/misc/IntegerSet.o ./pwiz/utility/misc/Base64.o ./pwiz/utility/misc/IterationListener.o ./pwiz/utility/misc/MSIHandler.o ./pwiz/utility/misc/Filesystem.o ./pwiz/utility/misc/TabReader.o ./pwiz/utility/misc/random_access_compressed_ifstream.o ./pwiz/utility/misc/SHA1.o ./pwiz/utility/misc/SHA1Calculator.o ./pwiz/utility/misc/sha1calc.o ./random_access_gzFile.o rampR.o R_init_mzR.o -lpthread -L/net/corral2/vol0/master/eugeneid/bin/netcdf-4.3.3.1/myNetCDF/lib -lnetcdf
installing to /master/eugeneid/bin/R-3.2.1/library/mzR/libs
** R
** inst
** preparing package for lazy loading
Creating a generic function for ‘close’ from package ‘base’ in package ‘mzR’
** 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 '/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so':
libnetcdf.so.7: cannot open shared object file: No such file or directory
Error: loading failed
...
Both mzR.so and libnetcdf.so.7 exist.
Versions: R 3.2.1, mzR 2.2.1, Rcpp 0.11.6, netcdf-4.3.3.1, Bioconductor 3.1 (BiocInstaller 1.18.4)
Directories netcdf-4.3.3.1/myNetCDF/lib, netcdf-4.3.3.1/myNetCDF, and netcdf-4.3.3.1 are included in PATH
What could be wrong?
Diego is right, of course. Could you try the recommended installation using
biocLite
, and see it that works. Also, where islibnetcdf.so.7
- mine is in/usr/lib/libnetcdf.so.7
. If it is in a non-standard location, maybe it is not found during compilation.I do not have administrative rights, so I use files where they were located during installations.
As mzR uses NetCDR, I included its subdirectories bin/, lib/, and include/ in my PATH according to the installation instructions for ncdf ( https://cran.r-project.org/web/packages/ncdf/INSTALL ) and xcms, and previous error message "libnetcdf.so.7: cannot open shared object file: No such file or directory" disappeared.
But I got new error message for mzR.so:
>---------
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so':
/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so: undefined symbol: deflateInit2_
Error: loading failed
Execution halted
ERROR: loading failed
<---------------
In the case of error, "biocLite(<...>)" deletes installed files, that is why I use "R CMD INSTALL --no-clean-on-error <...>.tar.gz" in such situations to keep installed files, getting the same error messages.
Now mzR.so exists:
> ldd -r /master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so
linux-vdso.so.1 => (0x00007fffec53f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aae7b82a000)
libnetcdf.so.7 => /master/eugeneid/bin/netcdf-4.3.3.1/myNetCDF/lib/libnetcdf.so.7 (0x00002aae7ba47000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002aae7bd30000)
libm.so.6 => /lib64/libm.so.6 (0x00002aae7c030000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002aae7c2b4000)
libc.so.6 => /lib64/libc.so.6 (0x00002aae7c4c2000)
/lib64/ld-linux-x86-64.so.2 (0x0000003eac400000)
undefined symbol: deflateInit2_ (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: compress (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_ClassSymbol (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_findFun (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
... and many others.
So, libnetcdf.so.7 is successively included in mzR.so, but it looks like now mzR.so can not get system variable deflateInit2_ ? What could be wrong?
Some of these are spurious because they are defined by R; try
R CMD ldd -r /master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so
I get exactly the same, full output:
>----------------------
R CMD ldd -r /master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so
linux-vdso.so.1 => (0x00007fff7f5fd000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae6d8866000)
libnetcdf.so.7 => /master/eugeneid/bin/netcdf-4.3.3.1/myNetCDF/lib/libnetcdf.so.7 (0x00002ae6d8a82000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002ae6d8d6b000)
libm.so.6 => /lib64/libm.so.6 (0x00002ae6d906c000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002ae6d92ef000)
libc.so.6 => /lib64/libc.so.6 (0x00002ae6d94fd000)
/lib64/ld-linux-x86-64.so.2 (0x0000003eac400000)
undefined symbol: R_NilValue (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_ClassSymbol (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_GlobalEnv (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_NaInt (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_UnboundValue (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_BaseNamespace (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_RowNamesSymbol (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_NaString (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_LevelsSymbol (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_NamesSymbol (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_lang2 (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: deflateInit2_ (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: compress (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_RegisterCFinalizerEx (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_PreserveObject (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: uncompress (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_findFun (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_mkCharCE (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_error (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: deflate (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_coerceVector (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_unprotect (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_isString (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: SET_STRING_ELT (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_ExternalPtrAddr (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: CAR (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_lang4 (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: deflateEnd (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: REprintf (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_ProtectWithIndex (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: STRING_ELT (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_install (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_protect (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_setAttrib (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: crc32 (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_mkChar (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_mkString (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: inflate (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_eval (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_ReleaseObject (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: inflateInit2_ (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_Reprotect (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rprintf (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: compressBound (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_GetCCallable (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: S_realloc (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_isS4 (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_inherits (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_length (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: inflateEnd (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: CDR (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: inflateCopy (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: REAL (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_xlength (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_onintr (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_ScalarString (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_lang1 (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_CHAR (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: clock_gettime (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: inflateReset (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: deflateReset (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: INTEGER (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_isNull (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_allocVector (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: SET_VECTOR_ELT (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: S_alloc (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: PRINTNAME (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_SetExternalPtrTag (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: SET_TAG (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_getAttrib (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_registerRoutines (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: VECTOR_ELT (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: TYPEOF (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_MakeExternalPtr (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: Rf_lang3 (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: CDDR (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_FlushConsole (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
undefined symbol: R_SetExternalPtrProtected (/master/eugeneid/bin/R-3.2.1/library/mzR/libs/mzR.so)
<------------------------------------
I'm not sure what is going on, but in case it's useful, I was expecting that R CMD ldd helped to include the libR.so, and that some of these symbols would resolve to it, as in
Thank you for the idea: I found that I did not have libR.so, I reinstalled R with
./configure --enable-R-shlib --enable-R-static-lib --enable-BLAS-shlib
and now libR.so is presented in mzR.so.
The error message is the same, but the list of undefined symbols is much shorter:
Do I miss some compressing library?
Maybe
zlib
?I installed zlib, included it in PATH and LD_LIBRARY_PATH, and got mzR.so of 73 MB containing 17 libraries with the same error message:
Did you do a clean installation, so all (sub) libraries were being re-built? I have
(even if
ldd
andR CMD ldd
give you identical results at the moment, usingR CMD ldd
is correct --R CMD
sets up the environment to be consistent with the way R will run). I think you should rebuild R so that R knows about libz (not that this is the problem at the current stage). Also, I wouldn't mess with success but in principle at least I don't think you should need to tell R to be built with --enable-R-shlib; it seems like there is a mis-communication between the setting you used to build R and the settings you're using to compile packages; maybe you're selecting a different compiler or compiler options?With zlib directories, included in PATH and LD_LIBRARY_PATH, I rebuilt R twice:
With --enable-R-shlib I have
> ls -lh mzR.so
-rwxr-xr-x 1 eugeneid genetics 51M Aug 1 15:26 mzR.so
> /R CMD ldd mzR.so | wc -l
16
and undefined symbols are the same as previous.
Without --enable-R-shlib I got a lot of undefined symbols and
> R CMD ldd mzR.so| wc -l
8
OK. Finally, our system administrator reinstalled NetCDF from rpm, and I successively installed mzR.
Why not use the official method for install (i.e. biocLite)? It seems you are trying to install the devel version of mzR on a Bioconductor release install. If so, this is not supported. Either:
Or alternatively in a fresh R install:
You cannot, in general, mix release and devel package versions in the same install.
Thank you for the fast response.
Sorry for misleading, I mixed output from two different attempts of installation: of mzR 2.2.1 and mzR 2.3.1. I tried several versions of mzR and R, result is the same - the same error messages.
Could you clarify what you mean by "tried several versions" - have you tried using
biocLite("mzR")
? If that fails, please report the output ofsessionInfo()
in a new answer.Yes, I began with
biocLite("mzR")
, got that error message, and only after that I ran:.
sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-unknown-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=en_US.UTF-8 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