es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cargar algunos paquetes con Rstudio server no funciona, mientras que funciona con R server.

Estoy usando Rstudio server en un servidor remoto y ya tengo algunos paquetes instalados.

Cuando intento cargar bibliotecas como raster o terra usando Rstudio server, obtengo un error:

> library(terra)

Error: package or namespace load failed for ‘terra’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object ‘/home/pearless/R/x86_64-pc-linux-gnu-library/4.1/terra/libs/terra.so’:
  libproj.so.15: cannot open shared object file: No such file or directory

> library(raster)

Error: package or namespace load failed for ‘raster’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object ‘/home/pearless/R/x86_64-pc-linux-gnu-library/4.1/terra/libs/terra.so’:
  libproj.so.15: cannot open shared object file: No such file or directory

Por favor, tenga en cuenta que la carga de otros paquetes como tidyverse funciona perfectamente en Rstudio server:

> library(tidyverse)

── Attaching packages ──────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.3.1 ──
✓ ggplot2 3.3.5     ✓ purrr   0.3.4
✓ tibble  3.1.6     ✓ forcats 0.5.1
✓ readr   2.0.2
── Conflicts ─────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()

Cuando uso la consola de R en el servidor sin usar Rstudio server, los paquetes raster y terra se pueden cargar sin ningún problema:

$ R

R version 4.1.1 (2021-08-10) -- "Kick Things"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(terra)
terra version 1.4.11

> library(raster)
Loading required package: sp

¿Cómo puedo solucionar este problema para poder cargar estos paquetes en Rstudio server?

ACTUALIZACIÓN basada en el comentario de @user2554330:

  1. .libPaths() da exactamente el mismo resultado en ambos.
  2. Sys.getenv("PATH") y Sys.getenv("LD_LIBRARY_PATH") dan resultados diferentes en las consolas de R y Rstudio server; parece que Rstudio server no está viendo la mayoría de las variables de ruta. Ejecuté pth = Sys.getenv("PATH") y ld_pth = Sys.getenv("LD_LIBRARY_PATH") en R en el servidor, y copié los resultados y los pegué en Sys.setenv(PATH = "result_of_pth") y Sys.setenv(PATH = "result_of_ld_pth") en el Rstudio server, respectivamente. Después de hacer esto, todavía obtengo el mismo error al cargar las bibliotecas raster y terra.
  3. Sí, ambos están ejecutándose con el mismo nombre de usuario.
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que la biblioteca libproj.so.15 no puede ser encontrada por los paquetes terra y raster. Esto puede ocurrir cuando una biblioteca requerida no está instalada o no puede ser encontrada en la ruta de la biblioteca.

    Una posible solución a este problema es establecer la variable LD_LIBRARY_PATH para incluir la ruta donde la biblioteca libproj.so.15 está instalada. Para hacer esto, puede agregar la siguiente línea a su archivo ~/.bashrc o ~/.bash_profile:

    export LD_LIBRARY_PATH=/ruta/hacia/biblioteca:$LD_LIBRARY_PATH
    

    Asegúrese de reemplazar /ruta/hacia/biblioteca con la ruta real donde la biblioteca libproj.so.15 está instalada.

    Después de guardar el archivo, puede recargar las variables de entorno ejecutando el comando:

    source ~/.bashrc
    

    o

    source ~/.bash_profile
    

    Si esto no resuelve el problema, puede intentar actualizar los paquetes terra y raster a su última versión utilizando el comando:

    install.packages(c("terra", "raster"), dependencies = TRUE)
    

    Si el problema persiste, es posible que necesite contactar a su administrador de sistema o soporte de IT para obtener ayuda adicional.

Comments are closed.