¿A quién no le ha pasado alguna vez que al intentar instalar un paquete de R por la consola le devuelve un error similar a que un paquete determinado had non-zero exit status? Entre otros motivos, este error suele ir asociado con un fallo a la hora de buscar dependencias de paquetes en R. En algunos momentos, puede llegar a ser extraordinariamente desesperante. Al menos a mí me ha sucedido. Quieres instalar un paquete que necesitas para analizar unos datos concretos, estás todo motivado para realizarlo y te das de bruces con ese dichoso error. ¿Qué pasa? ¿Por qué? Si sigues leyendo, verás cómo lo solucioné…
Haciendo una búsqueda rápida por internet nos encontramos miles y miles de resultados. No estamos solos en esta batalla. Aquí os contaré cuál es el origen del error y cómo se soluciona.
Quiero leer...
¿En qué sistema operativo me funcionó? Linux
Primero, he de mencionar el sistema operativo que utilicé y donde encontré la solución. Fue Linux Mint. De hecho, es precisamente en Linux donde aparecen principalmente estos errores. Por lo tanto, esta solución podría ser compatible con versiones previas así como con Ubuntu y sus derivados.
Por qué aparece el error had non-zero exit status?
Pues bien, mi fallo fue creer que dicho error se encontraba en R. ¡Mal! El fallo se encontraba realmente en que R necesitaba algunos paquetes de Linux Mint para que todo funcionara correctamente. Es decir, era un problema de Linux Mint al no tener instalados unos paquetes que eran necesarios para R. Y de ahí, el maldito had non-zero exit status.
Es importante mencionar que este error aparece siempre cuando faltan librerías en nuestro Linux. Por lo tanto, dependiendo del paquete que queramos instalar de R, las librerías que necesitaremos instalar en Linux variarán.
¿Cómo se soluciona ESTE ERROR non-zero exit status?
Leyendo. Sé que es obvio, pero algunas veces se nos olvida. Antes de ese error o por encima hay información que nos puede dar pistas de cómo se soluciona. En algunas ocasiones nos dicen directamente qué paquetes hace falta instalar en nuestro Linux. En otras basta con buscar el paquete en cuestión en nuestro gestor de software. Si empleamos Linux Mint, por ejemplo, sería el gestor de paquetes Synaptic.
Si estos paquetes de R se necesitan instalar a través de Synaptic, suelen encontrarse con este nombre: r-cran-<paquete>
.
Con un simple comando en la terminal instalamos los paquetes necesarios para solventar el problema. Si nos faltaran, por ejemplo, los paquetes curl
, libssl-dev
, libcurl
y xml2
, los instalaríamos así:
sudo apt-get install curl libssl-dev libcurl4-openssl-dev libxml2-dev
Una última reflexión
Esto que he escrito responde a mi experiencia particular. Es probable que esta solución no sea satisfactoria para todos los lectores de esta entrada. Aun así es importante recordar que las librerías a instalar en Linux variarán entre cada uno de nosotros dependiendo del paquete de R que queramos instalar.
Muchas gracias, a mi me sirvió con Ubuntu 16.04.2 , después de buscar múltiples soluciones
Hola Andrés, muchas gracias! Escribirlo entonces ha merecido la pena!
A mí también me has alegrado el día, ¡ya no sabía qué probar para solucionarlo!
Muchas gracias y ¡Viva el Software Libre!
¡Viva!
Excelente artículo, me sirvió con ubuntu 17.10.
Saludos
Gracias Jesús por tu amable respuesta. Me alegra de que te haya servido.
Gracias.
A tí. Si te ha servido genial.
Funciona en Ubuntu 18.04. Gracias!!!
¡Me alegra escuchar eso Ana!
A mi no me funciona :(. Estoy probando de instalar rgbif and rgdal y sigo teniendo el mismo error. Tengo Instaldo Ubuntu 16.04. Tienes agun consejo?
Hola María sí. Seguro que te falta la instalación de alguna librería en Ubuntu. Cuando intentes instalar rgbif, mira a ver los códigos que aparecen durante el proceso fallido de instalación. Ahí aparecerá en algún lado lo que te falta y cómo instalarlo en Ubuntu. Ni lo localizas, envíame todo lo que te sale y te ayudo a localizarlo.
Holaa a todos,
Quiero instalar markovchain version 0.2 en R studio pero me sale error
«installation of package ‘/home/khemlal/Downloads/markovchain_0.2.tar.gz’ had non-zero exit status»
y uso este comando «sudo apt-get install curl libssl-dev libcurl4-openssl-dev libxml2-dev»
pero no me funciono…alguien me puede ayudar por favor.
Gracias,
Atte. Khemlal Nirmalkar
Hola Khemlal. Dime qué sistema operativo tienes (aunque intuyo que Linux). Necesitaría saber también qué te sale por encima de ese error cuando lo intentas instalar.
Muchas gracias por tu ayuda, me ha funcionado
Me alegro muchísimo escuchar eso Óscar.
Hola tengo el mismo problema pero estoy trabajando en Windows 10…. alguien sabría que hacer para solucionarlo en ese caso. Os agradezco ya que he estado buscando por horas y no he hallado solución…
¡Gracias!, sigue funcionando en el 2019 😀
Hola maestro
Gracias!!! No daba con el chistesito pero solucionaste el problema, si funciona en Linux Mint 19.3
A mi también me funcionó. Mil, mil gracias. Estaba desesperada! 🙂
¿Y como lo arreglas en Windows 10?