No se puede instalar el paquete R debido a la falta de coincidencia de la dependencia XML

Lancé R en mi línea de comandos y escribí lo siguiente:

install.packages("XML") 

Después de seleccionar un sitio espejo, vi la siguiente salida:

 trying URL 'https://cloud.r-project.org/src/contrib/XML_3.98-1.4.tar.gz' Content type 'application/x-gzip' length 1599214 bytes (1.5 MB) ================================================== downloaded 1.5 MB * installing *source* package 'XML' ... ** package 'XML' successfully unpacked and MD5 sums checked checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -E checking for sed... /usr/local/Library/ENV/4.3/sed checking for pkg-config... /usr/local/bin/pkg-config checking for xml2-config... /Users/richiethomas/anaconda/bin/xml2-config USE_XML2 = yes SED_EXTENDED_ARG: -E Minor 9, Patch 2 for 2.9.2 Located parser file -I/Users/richiethomas/anaconda/include/libxml2/parser.h Checking for 1.8: -I/Users/richiethomas/anaconda/include/libxml2 Using libxml2.* checking for gzopen in -lz... yes checking for xmlParseFile in -lxml2... yes You are trying to use a version 2.* edition of libxml but an incompatible library. The header files and library seem to be mismatched. If you have specified LIBXML_INCDIR, make certain to also specify an appropriate LIBXML_LIBDIR if the libxml2 library is not in the default directories. ERROR: configuration failed for package 'XML' * removing '/usr/local/lib/R/3.2/site-library/XML' The downloaded source packages are in '/private/var/folders/jy/0cwn40p951xc7f1480z3sxzm0000gn/T/RtmpvWMrkH/downloaded_packages' Warning message: In install.packages("XML") : installation of package 'XML' had non-zero exit status 

Busqué en Google y encontré este enlace , que sugería ejecutar el comando ‘which which xmllint’ en la línea de comandos para encontrar cualquier instalación XML que pudiera entrar en conflicto con la que depende la R. La salida cuando lo ejecuté fue:

 /Users/richiethomas/anaconda/bin/xmllint 

Corríjame si me equivoco, pero parece que mi instalación de Python tiene una dependencia XML que entra en conflicto con la que R quiere descargar. ¿Es esto correcto? Y si es así, ¿cómo puedo solucionarlo para que tanto Python como R estén instalados en mi máquina?

EDITAR: Estoy usando OSX. Ejecuté “brew install libxml2” pero Homebrew dijo que ya estaba instalado.

EDIT # 2: Intenté desinstalar y reinstalar R a través de Homebrew, y todavía estoy recibiendo el mismo error.

EDICIÓN # 3: Ejecuté “brew info libxml2” y vi que hay un indicador “–with-python” que habilita una comstackción con soporte Python. También me di cuenta de lo siguiente:

 Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables: LDFLAGS: -L/usr/local/opt/libxml2/lib CPPFLAGS: -I/usr/local/opt/libxml2/include 

Ejecuté “brew uninstall libxml2” y luego “brew install libxml2 –with-python”, y luego configuré las 2 variables de entorno anteriores usando el comando “exportar”. Luego volví a ejecutar R y nuevamente intenté instalar el paquete XML. Vi docenas de advertencias del tipo “pasando el argumento al parámetro aquí” (ver más abajo), seguido de un código de salida distinto de cero:

  * installing *source* package 'XML' ... ** package 'XML' successfully unpacked and MD5 sums checked checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -E checking for sed... /usr/local/Library/ENV/4.3/sed checking for pkg-config... /usr/local/bin/pkg-config checking for xml2-config... /Users/richiethomas/anaconda/bin/xml2-config USE_XML2 = yes SED_EXTENDED_ARG: -E Minor 9, Patch 2 for 2.9.2 Located parser file -I/Users/richiethomas/anaconda/include/libxml2/parser.h Checking for 1.8: -I/Users/richiethomas/anaconda/include/libxml2 Using libxml2.* checking for gzopen in -lz... yes checking for xmlParseFile in -lxml2... yes checking for xmlHashSize in -lxml2... yes Using built-in xmlHashSize Checking DTD parsing (presence of externalSubset)... checking for xmlHashSize in -lxml2... yes Found xmlHashSize checking for xmlOutputBufferCreateBuffer in -lxml2... yes have xmlOutputBufferCreateBuffer() checking for xmlDocDumpFormatMemoryEnc in -lxml2... yes checking libxml/xmlversion.h usability... yes checking libxml/xmlversion.h presence... yes checking for libxml/xmlversion.h... yes Expat: FALSE Checking for return type of xmlHashScan element routine. No return value for xmlHashScan xmlNs has a context field Checking for cetype_t enumeration Using recent version of R with cetype_t enumeration type for encoding checking for xmlsec1-config... no nodegc default xml-debug default Version has XML_WITH_ZLIB Version has xmlHasFeature() **************************************** Configuration information: Libxml settings libxml include directory: -I/Users/richiethomas/anaconda/include/libxml2 libxml library directory: -L/Users/richiethomas/anaconda/lib -lxml2 -lz -liconv -lm -lz -lxml2 libxml 2: -DLIBXML2=1 Comstacktion flags: -DLIBXML -I/Users/richiethomas/anaconda/include/libxml2 -DUSE_EXTERNAL_SUBSET=1 -DROOT_HAS_DTD_NODE=1 -DDUMP_WITH_ENCODING=1 -DUSE_XML_VERSION_H=1 -DXML_ELEMENT_ETYPE=1 -DXML_ATTRIBUTE_ATYPE=1 -DNO_XML_HASH_SCANNER_RETURN=1 -DLIBXML_NAMESPACE_HAS_CONTEXT=1 -DHAVE_R_CETYPE_T=1 -DHAVE_XML_WITH_ZLIB=1 -DHAVE_XML_HAS_FEATURE=1 -DUSE_R=1 -D_R_=1 -DHAVE_VALIDITY=1 -DXML_REF_COUNT_NODES=1 Link flags: -L/Users/richiethomas/anaconda/lib -lxml2 -lz -liconv -lm -lz -lxml2 **************************************** configure: creating ./config.status config.status: creating src/Makevars config.status: creating R/supports.R config.status: creating inst/scripts/RSXML.csh config.status: creating inst/scripts/RSXML.bsh ** libs clang -I/usr/local/Cellar/r/3.2.4_1/R.framework/Resources/include -DNDEBUG -DLIBXML -I/Users/richiethomas/anaconda/include/libxml2 -DUSE_EXTERNAL_SUBSET=1 -DROOT_HAS_DTD_NODE=1 -DDUMP_WITH_ENCODING=1 -DUSE_XML_VERSION_H=1 -DXML_ELEMENT_ETYPE=1 -DXML_ATTRIBUTE_ATYPE=1 -DNO_XML_HASH_SCANNER_RETURN=1 -DLIBXML_NAMESPACE_HAS_CONTEXT=1 -DHAVE_R_CETYPE_T=1 -DHAVE_XML_WITH_ZLIB=1 -DHAVE_XML_HAS_FEATURE=1 -DUSE_R=1 -D_R_=1 -DHAVE_VALIDITY=1 -DXML_REF_COUNT_NODES=1 -I. -DLIBXML2=1 -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/opt/openssl/include -I/usr/local/include -fPIC -g -O2 -c DocParse.c -o DocParse.o DocParse.c:375:60: warning: passing 'const char *' to parameter of type 'const xmlChar *' (aka 'const unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign] SET_STRING_ELT(VECTOR_ELT(rdoc, FILE_ELEMENT_NAME), 0, ENC_COPY_TO_USER_STRING(doc->name ? XMLCHAR_TO_CHAR(doc->name) : fileName)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./Utils.h:235:74: note: expanded from macro 'ENC_COPY_TO_USER_STRING' #define ENC_COPY_TO_USER_STRING(x) CreateCharSexpWithEncoding(encoding, CHAR_TO_XMLCHAR (x)) ^~~~~~~~~~~~~~~~~~~ ./Utils.h:12:31: note: expanded from macro 'CHAR_TO_XMLCHAR' #define CHAR_TO_XMLCHAR(val) ((xmlChar *) val) ^~~~~~~~~~~~~~~~~ ./Utils.h:220:73: note: passing argument to parameter 'str' here SEXP CreateCharSexpWithEncoding(const xmlChar *encoding, const xmlChar *str); ..... /usr/local/Cellar/r/3.2.4_1/R.framework/Resources/include/Rinternals.h:822:28: note: passing argument to parameter here SEXP Rf_mkChar(const char *); ^ schema.c:122:25: warning: passing 'const char *' to parameter of type 'const xmlChar *' (aka 'const unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign] p = xmlHashLookup(t, CHAR_DEREF(STRING_ELT(name, 0))); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./RSCommon.h:140:27: note: expanded from macro 'CHAR_DEREF' #define CHAR_DEREF(x) CHAR((x)) ^~~~~~~~~ /usr/local/Cellar/r/3.2.4_1/R.framework/Resources/include/Rinternals.h:440:18: note: expanded from macro 'CHAR' #define CHAR(x) R_CHAR(x) ^~~~~~~~~ /Users/richiethomas/anaconda/include/libxml2/libxml/hash.h:171:22: note: passing argument to parameter 'name' here const xmlChar *name); ^ 2 warnings generated. clang -I/usr/local/Cellar/r/3.2.4_1/R.framework/Resources/include -DNDEBUG -DLIBXML -I/Users/richiethomas/anaconda/include/libxml2 -DUSE_EXTERNAL_SUBSET=1 -DROOT_HAS_DTD_NODE=1 -DDUMP_WITH_ENCODING=1 -DUSE_XML_VERSION_H=1 -DXML_ELEMENT_ETYPE=1 -DXML_ATTRIBUTE_ATYPE=1 -DNO_XML_HASH_SCANNER_RETURN=1 -DLIBXML_NAMESPACE_HAS_CONTEXT=1 -DHAVE_R_CETYPE_T=1 -DHAVE_XML_WITH_ZLIB=1 -DHAVE_XML_HAS_FEATURE=1 -DUSE_R=1 -D_R_=1 -DHAVE_VALIDITY=1 -DXML_REF_COUNT_NODES=1 -I. -DLIBXML2=1 -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/opt/openssl/include -I/usr/local/include -fPIC -g -O2 -c xmlsecurity.c -o xmlsecurity.o clang -I/usr/local/Cellar/r/3.2.4_1/R.framework/Resources/include -DNDEBUG -DLIBXML -I/Users/richiethomas/anaconda/include/libxml2 -DUSE_EXTERNAL_SUBSET=1 -DROOT_HAS_DTD_NODE=1 -DDUMP_WITH_ENCODING=1 -DUSE_XML_VERSION_H=1 -DXML_ELEMENT_ETYPE=1 -DXML_ATTRIBUTE_ATYPE=1 -DNO_XML_HASH_SCANNER_RETURN=1 -DLIBXML_NAMESPACE_HAS_CONTEXT=1 -DHAVE_R_CETYPE_T=1 -DHAVE_XML_WITH_ZLIB=1 -DHAVE_XML_HAS_FEATURE=1 -DUSE_R=1 -D_R_=1 -DHAVE_VALIDITY=1 -DXML_REF_COUNT_NODES=1 -I. -DLIBXML2=1 -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/opt/openssl/include -I/usr/local/include -fPIC -g -O2 -c xpath.c -o xpath.o xpath.c:36:41: warning: passing 'const xmlChar *' (aka 'const unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] SET_NAMES(ref, ScalarString(mkCharCE(el->name, encoding))); ^~~~~~~~ /usr/local/Cellar/r/3.2.4_1/R.framework/Resources/include/Rdefines.h:135:54: note: expanded from macro 'SET_NAMES' #define SET_NAMES(x, n) setAttrib(x, R_NamesSymbol, n) ^ /usr/local/Cellar/r/3.2.4_1/R.framework/Resources/include/Rinternals.h:889:30: note: passing argument to parameter here SEXP Rf_mkCharCE(const char *, cetype_t); ^ 1 warning generated. clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/Cellar/r/3.2.4_1/R.framework/Resources/lib -L/usr/local/opt/gettext/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl/lib -L/usr/local/lib -o XML.so DocParse.o EventParse.o ExpatParse.o HTMLParse.o NodeGC.o RSDTD.o RUtils.o Rcatalog.o Utils.o XMLEventParse.o XMLHashTree.o XMLTree.o fixNS.o libxmlFeatures.o schema.o xmlsecurity.o xpath.o -L/Users/richiethomas/anaconda/lib -lxml2 -lz -liconv -lm -lz -lxml2 -F/usr/local/Cellar/r/3.2.4_1/R.framework/.. -framework R -lintl -Wl,-framework -Wl,CoreFoundation installing to /usr/local/lib/R/3.2/site-library/XML/libs ** R ** inst ** preparing package for lazy loading Creating a generic function for 'source' from package 'base' in package 'XML' in method for 'xmlAttrsToDataFrame' with signature '"AsIs"': no definition for class “AsIs” in method for 'readKeyValueDB' with signature '"AsIs"': no definition for class “AsIs” in method for 'readSolrDoc' with signature '"AsIs"': no definition for class “AsIs” ** help *** installing help indices ** building package indices ** testing if installed package can be loaded Error : .onLoad failed in loadNamespace() for 'XML', details: call: dyn.load(file, DLLpath = DLLpath, ...) error: unable to load shared object '/usr/local/lib/R/3.2/site-library/XML/libs/XML.so': dlopen(/usr/local/lib/R/3.2/site-library/XML/libs/XML.so, 6): Library not loaded: libxml2.2.dylib Referenced from: /usr/local/lib/R/3.2/site-library/XML/libs/XML.so Reason: image not found Error: loading failed Execution halted ERROR: loading failed * removing '/usr/local/lib/R/3.2/site-library/XML' The downloaded source packages are in '/private/var/folders/jy/0cwn40p951xc7f1480z3sxzm0000gn/T/RtmpEi0XEv/downloaded_packages' Warning message: In install.packages("XML") : installation of package 'XML' had non-zero exit status 

Resolví este problema usando anaconda para instalar XML:

 conda install -cr r-xml=3.98_1.5 

agregando a la respuesta de @ Travis usando conda install -cr r-xml=3.98_1.5 o conda install -c conda-forge r-xml funciona. Pero asegúrese de ejecutar conda update r-essentials y vuelva a abrir / reiniciar r terminal\notebook (según sea su caso).

Usted explicó lo que está mal y eso ayuda.

Documentación del paquete XML aquí: https://cran.r-project.org/web/packages/XML/index.html

Preste atención a donde dice You are trying to use a version 2.* edition of libxml but an incompatible library.

¿Qué sistema estás usando? Utilizo OSX y cuando tuve un problema similar corrí

 brew install libxml2 

y luego funcionó

También veo que usas R 3.0+ y eso debería ser muy compatible.