Error en R: “installation of package ‘X’ had non-zero exit status” (posible solución)

¿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.

Error en R: "installation of package ‘X’ had non-zero exit status"

¿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.

20 comentarios en “Error en R: “installation of package ‘X’ had non-zero exit status” (posible solución)”

    • 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.

      Responder
  1. 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

    Responder
  2. 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…

    Responder

Deja un comentario